{-# LANGUAGE TypeApplications #-}


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

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

module GI.NM.Objects.SettingTeamPort
    ( 

-- * Exported types
    SettingTeamPort(..)                     ,
    IsSettingTeamPort                       ,
    toSettingTeamPort                       ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addLinkWatcher]("GI.NM.Objects.SettingTeamPort#g:method:addLinkWatcher"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [clearLinkWatchers]("GI.NM.Objects.SettingTeamPort#g:method:clearLinkWatchers"), [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"), [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"), [removeLinkWatcher]("GI.NM.Objects.SettingTeamPort#g:method:removeLinkWatcher"), [removeLinkWatcherByValue]("GI.NM.Objects.SettingTeamPort#g:method:removeLinkWatcherByValue"), [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
-- [getConfig]("GI.NM.Objects.SettingTeamPort#g:method:getConfig"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDbusPropertyType]("GI.NM.Objects.Setting#g:method:getDbusPropertyType"), [getLacpKey]("GI.NM.Objects.SettingTeamPort#g:method:getLacpKey"), [getLacpPrio]("GI.NM.Objects.SettingTeamPort#g:method:getLacpPrio"), [getLinkWatcher]("GI.NM.Objects.SettingTeamPort#g:method:getLinkWatcher"), [getName]("GI.NM.Objects.Setting#g:method:getName"), [getNumLinkWatchers]("GI.NM.Objects.SettingTeamPort#g:method:getNumLinkWatchers"), [getPrio]("GI.NM.Objects.SettingTeamPort#g:method:getPrio"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getQueueId]("GI.NM.Objects.SettingTeamPort#g:method:getQueueId"), [getSecretFlags]("GI.NM.Objects.Setting#g:method:getSecretFlags"), [getSticky]("GI.NM.Objects.SettingTeamPort#g:method:getSticky").
-- 
-- ==== 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)
    ResolveSettingTeamPortMethod            ,
#endif

-- ** addLinkWatcher #method:addLinkWatcher#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortAddLinkWatcherMethodInfo ,
#endif
    settingTeamPortAddLinkWatcher           ,


-- ** clearLinkWatchers #method:clearLinkWatchers#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortClearLinkWatchersMethodInfo,
#endif
    settingTeamPortClearLinkWatchers        ,


-- ** getConfig #method:getConfig#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetConfigMethodInfo      ,
#endif
    settingTeamPortGetConfig                ,


-- ** getLacpKey #method:getLacpKey#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetLacpKeyMethodInfo     ,
#endif
    settingTeamPortGetLacpKey               ,


-- ** getLacpPrio #method:getLacpPrio#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetLacpPrioMethodInfo    ,
#endif
    settingTeamPortGetLacpPrio              ,


-- ** getLinkWatcher #method:getLinkWatcher#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetLinkWatcherMethodInfo ,
#endif
    settingTeamPortGetLinkWatcher           ,


-- ** getNumLinkWatchers #method:getNumLinkWatchers#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetNumLinkWatchersMethodInfo,
#endif
    settingTeamPortGetNumLinkWatchers       ,


-- ** getPrio #method:getPrio#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetPrioMethodInfo        ,
#endif
    settingTeamPortGetPrio                  ,


-- ** getQueueId #method:getQueueId#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetQueueIdMethodInfo     ,
#endif
    settingTeamPortGetQueueId               ,


-- ** getSticky #method:getSticky#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortGetStickyMethodInfo      ,
#endif
    settingTeamPortGetSticky                ,


-- ** new #method:new#

    settingTeamPortNew                      ,


-- ** removeLinkWatcher #method:removeLinkWatcher#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortRemoveLinkWatcherMethodInfo,
#endif
    settingTeamPortRemoveLinkWatcher        ,


-- ** removeLinkWatcherByValue #method:removeLinkWatcherByValue#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortRemoveLinkWatcherByValueMethodInfo,
#endif
    settingTeamPortRemoveLinkWatcherByValue ,




 -- * Properties


-- ** config #attr:config#
-- | The JSON configuration for the team port. The property should contain raw
-- JSON configuration data suitable for teamd, because the value is passed
-- directly to teamd. If not specified, the default configuration is
-- used. See man teamd.conf for the format details.

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortConfigPropertyInfo       ,
#endif
    clearSettingTeamPortConfig              ,
    constructSettingTeamPortConfig          ,
    getSettingTeamPortConfig                ,
    setSettingTeamPortConfig                ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortConfig                   ,
#endif


-- ** lacpKey #attr:lacpKey#
-- | Corresponds to the teamd ports.PORTIFNAME.lacp_key.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortLacpKeyPropertyInfo      ,
#endif
    constructSettingTeamPortLacpKey         ,
    getSettingTeamPortLacpKey               ,
    setSettingTeamPortLacpKey               ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortLacpKey                  ,
#endif


-- ** lacpPrio #attr:lacpPrio#
-- | Corresponds to the teamd ports.PORTIFNAME.lacp_prio.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortLacpPrioPropertyInfo     ,
#endif
    constructSettingTeamPortLacpPrio        ,
    getSettingTeamPortLacpPrio              ,
    setSettingTeamPortLacpPrio              ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortLacpPrio                 ,
#endif


-- ** linkWatchers #attr:linkWatchers#

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortLinkWatchersPropertyInfo ,
#endif
#if defined(ENABLE_OVERLOADING)
    settingTeamPortLinkWatchers             ,
#endif


-- ** prio #attr:prio#
-- | Corresponds to the teamd ports.PORTIFNAME.prio.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortPrioPropertyInfo         ,
#endif
    constructSettingTeamPortPrio            ,
    getSettingTeamPortPrio                  ,
    setSettingTeamPortPrio                  ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortPrio                     ,
#endif


-- ** queueId #attr:queueId#
-- | Corresponds to the teamd ports.PORTIFNAME.queue_id.
-- When set to -1 means the parameter is skipped from the json config.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortQueueIdPropertyInfo      ,
#endif
    constructSettingTeamPortQueueId         ,
    getSettingTeamPortQueueId               ,
    setSettingTeamPortQueueId               ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortQueueId                  ,
#endif


-- ** sticky #attr:sticky#
-- | Corresponds to the teamd ports.PORTIFNAME.sticky.
-- 
-- /Since: 1.12/

#if defined(ENABLE_OVERLOADING)
    SettingTeamPortStickyPropertyInfo       ,
#endif
    constructSettingTeamPortSticky          ,
    getSettingTeamPortSticky                ,
    setSettingTeamPortSticky                ,
#if defined(ENABLE_OVERLOADING)
    settingTeamPortSticky                   ,
#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.SettingIPConfig as NM.SettingIPConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPTunnel as NM.SettingIPTunnel
import {-# SOURCE #-} qualified GI.NM.Objects.SettingInfiniband as NM.SettingInfiniband
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacsec as NM.SettingMacsec
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacvlan as NM.SettingMacvlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOlpcMesh as NM.SettingOlpcMesh
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsBridge as NM.SettingOvsBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsInterface as NM.SettingOvsInterface
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPatch as NM.SettingOvsPatch
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPort as NM.SettingOvsPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPpp as NM.SettingPpp
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPppoe as NM.SettingPppoe
import {-# SOURCE #-} qualified GI.NM.Objects.SettingProxy as NM.SettingProxy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingSerial as NM.SettingSerial
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTCConfig as NM.SettingTCConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeam as NM.SettingTeam
import {-# SOURCE #-} qualified GI.NM.Objects.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.Objects.Setting as NM.Setting
import {-# SOURCE #-} qualified GI.NM.Structs.TeamLinkWatcher as NM.TeamLinkWatcher

#endif

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

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

foreign import ccall "nm_setting_team_port_get_type"
    c_nm_setting_team_port_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingTeamPort where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_team_port_get_type

instance B.Types.GObject SettingTeamPort

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

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

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveSettingTeamPortMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSettingTeamPortMethod "addLinkWatcher" o = SettingTeamPortAddLinkWatcherMethodInfo
    ResolveSettingTeamPortMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSettingTeamPortMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSettingTeamPortMethod "clearLinkWatchers" o = SettingTeamPortClearLinkWatchersMethodInfo
    ResolveSettingTeamPortMethod "compare" o = NM.Setting.SettingCompareMethodInfo
    ResolveSettingTeamPortMethod "diff" o = NM.Setting.SettingDiffMethodInfo
    ResolveSettingTeamPortMethod "duplicate" o = NM.Setting.SettingDuplicateMethodInfo
    ResolveSettingTeamPortMethod "enumerateValues" o = NM.Setting.SettingEnumerateValuesMethodInfo
    ResolveSettingTeamPortMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSettingTeamPortMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSettingTeamPortMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSettingTeamPortMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSettingTeamPortMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSettingTeamPortMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSettingTeamPortMethod "optionClearByName" o = NM.Setting.SettingOptionClearByNameMethodInfo
    ResolveSettingTeamPortMethod "optionGet" o = NM.Setting.SettingOptionGetMethodInfo
    ResolveSettingTeamPortMethod "optionGetAllNames" o = NM.Setting.SettingOptionGetAllNamesMethodInfo
    ResolveSettingTeamPortMethod "optionGetBoolean" o = NM.Setting.SettingOptionGetBooleanMethodInfo
    ResolveSettingTeamPortMethod "optionGetUint32" o = NM.Setting.SettingOptionGetUint32MethodInfo
    ResolveSettingTeamPortMethod "optionSet" o = NM.Setting.SettingOptionSetMethodInfo
    ResolveSettingTeamPortMethod "optionSetBoolean" o = NM.Setting.SettingOptionSetBooleanMethodInfo
    ResolveSettingTeamPortMethod "optionSetUint32" o = NM.Setting.SettingOptionSetUint32MethodInfo
    ResolveSettingTeamPortMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSettingTeamPortMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSettingTeamPortMethod "removeLinkWatcher" o = SettingTeamPortRemoveLinkWatcherMethodInfo
    ResolveSettingTeamPortMethod "removeLinkWatcherByValue" o = SettingTeamPortRemoveLinkWatcherByValueMethodInfo
    ResolveSettingTeamPortMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSettingTeamPortMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSettingTeamPortMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSettingTeamPortMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSettingTeamPortMethod "toString" o = NM.Setting.SettingToStringMethodInfo
    ResolveSettingTeamPortMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSettingTeamPortMethod "verify" o = NM.Setting.SettingVerifyMethodInfo
    ResolveSettingTeamPortMethod "verifySecrets" o = NM.Setting.SettingVerifySecretsMethodInfo
    ResolveSettingTeamPortMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSettingTeamPortMethod "getConfig" o = SettingTeamPortGetConfigMethodInfo
    ResolveSettingTeamPortMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSettingTeamPortMethod "getDbusPropertyType" o = NM.Setting.SettingGetDbusPropertyTypeMethodInfo
    ResolveSettingTeamPortMethod "getLacpKey" o = SettingTeamPortGetLacpKeyMethodInfo
    ResolveSettingTeamPortMethod "getLacpPrio" o = SettingTeamPortGetLacpPrioMethodInfo
    ResolveSettingTeamPortMethod "getLinkWatcher" o = SettingTeamPortGetLinkWatcherMethodInfo
    ResolveSettingTeamPortMethod "getName" o = NM.Setting.SettingGetNameMethodInfo
    ResolveSettingTeamPortMethod "getNumLinkWatchers" o = SettingTeamPortGetNumLinkWatchersMethodInfo
    ResolveSettingTeamPortMethod "getPrio" o = SettingTeamPortGetPrioMethodInfo
    ResolveSettingTeamPortMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSettingTeamPortMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSettingTeamPortMethod "getQueueId" o = SettingTeamPortGetQueueIdMethodInfo
    ResolveSettingTeamPortMethod "getSecretFlags" o = NM.Setting.SettingGetSecretFlagsMethodInfo
    ResolveSettingTeamPortMethod "getSticky" o = SettingTeamPortGetStickyMethodInfo
    ResolveSettingTeamPortMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSettingTeamPortMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSettingTeamPortMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSettingTeamPortMethod "setSecretFlags" o = NM.Setting.SettingSetSecretFlagsMethodInfo
    ResolveSettingTeamPortMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

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

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

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

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

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

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortLacpKeyPropertyInfo
instance AttrInfo SettingTeamPortLacpKeyPropertyInfo where
    type AttrAllowedOps SettingTeamPortLacpKeyPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingTeamPortLacpKeyPropertyInfo = IsSettingTeamPort
    type AttrSetTypeConstraint SettingTeamPortLacpKeyPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingTeamPortLacpKeyPropertyInfo = (~) Int32
    type AttrTransferType SettingTeamPortLacpKeyPropertyInfo = Int32
    type AttrGetType SettingTeamPortLacpKeyPropertyInfo = Int32
    type AttrLabel SettingTeamPortLacpKeyPropertyInfo = "lacp-key"
    type AttrOrigin SettingTeamPortLacpKeyPropertyInfo = SettingTeamPort
    attrGet = getSettingTeamPortLacpKey
    attrSet = setSettingTeamPortLacpKey
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingTeamPortLacpKey
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingTeamPort.lacpKey"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingTeamPort.html#g:attr:lacpKey"
        })
#endif

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortLacpPrioPropertyInfo
instance AttrInfo SettingTeamPortLacpPrioPropertyInfo where
    type AttrAllowedOps SettingTeamPortLacpPrioPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingTeamPortLacpPrioPropertyInfo = IsSettingTeamPort
    type AttrSetTypeConstraint SettingTeamPortLacpPrioPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingTeamPortLacpPrioPropertyInfo = (~) Int32
    type AttrTransferType SettingTeamPortLacpPrioPropertyInfo = Int32
    type AttrGetType SettingTeamPortLacpPrioPropertyInfo = Int32
    type AttrLabel SettingTeamPortLacpPrioPropertyInfo = "lacp-prio"
    type AttrOrigin SettingTeamPortLacpPrioPropertyInfo = SettingTeamPort
    attrGet = getSettingTeamPortLacpPrio
    attrSet = setSettingTeamPortLacpPrio
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingTeamPortLacpPrio
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingTeamPort.lacpPrio"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingTeamPort.html#g:attr:lacpPrio"
        })
#endif

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

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

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

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

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

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortQueueIdPropertyInfo
instance AttrInfo SettingTeamPortQueueIdPropertyInfo where
    type AttrAllowedOps SettingTeamPortQueueIdPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint SettingTeamPortQueueIdPropertyInfo = IsSettingTeamPort
    type AttrSetTypeConstraint SettingTeamPortQueueIdPropertyInfo = (~) Int32
    type AttrTransferTypeConstraint SettingTeamPortQueueIdPropertyInfo = (~) Int32
    type AttrTransferType SettingTeamPortQueueIdPropertyInfo = Int32
    type AttrGetType SettingTeamPortQueueIdPropertyInfo = Int32
    type AttrLabel SettingTeamPortQueueIdPropertyInfo = "queue-id"
    type AttrOrigin SettingTeamPortQueueIdPropertyInfo = SettingTeamPort
    attrGet = getSettingTeamPortQueueId
    attrSet = setSettingTeamPortQueueId
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingTeamPortQueueId
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingTeamPort.queueId"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingTeamPort.html#g:attr:queueId"
        })
#endif

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingTeamPort
type instance O.AttributeList SettingTeamPort = SettingTeamPortAttributeList
type SettingTeamPortAttributeList = ('[ '("config", SettingTeamPortConfigPropertyInfo), '("lacpKey", SettingTeamPortLacpKeyPropertyInfo), '("lacpPrio", SettingTeamPortLacpPrioPropertyInfo), '("linkWatchers", SettingTeamPortLinkWatchersPropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("prio", SettingTeamPortPrioPropertyInfo), '("queueId", SettingTeamPortQueueIdPropertyInfo), '("sticky", SettingTeamPortStickyPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingTeamPortConfig :: AttrLabelProxy "config"
settingTeamPortConfig = AttrLabelProxy

settingTeamPortLacpKey :: AttrLabelProxy "lacpKey"
settingTeamPortLacpKey = AttrLabelProxy

settingTeamPortLacpPrio :: AttrLabelProxy "lacpPrio"
settingTeamPortLacpPrio = AttrLabelProxy

settingTeamPortLinkWatchers :: AttrLabelProxy "linkWatchers"
settingTeamPortLinkWatchers = AttrLabelProxy

settingTeamPortPrio :: AttrLabelProxy "prio"
settingTeamPortPrio = AttrLabelProxy

settingTeamPortQueueId :: AttrLabelProxy "queueId"
settingTeamPortQueueId = AttrLabelProxy

settingTeamPortSticky :: AttrLabelProxy "sticky"
settingTeamPortSticky = AttrLabelProxy

#endif

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

#endif

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

foreign import ccall "nm_setting_team_port_new" nm_setting_team_port_new :: 
    IO (Ptr SettingTeamPort)

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

#if defined(ENABLE_OVERLOADING)
#endif

-- method SettingTeamPort::add_link_watcher
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "link_watcher"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "TeamLinkWatcher" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the link watcher 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_team_port_add_link_watcher" nm_setting_team_port_add_link_watcher :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    Ptr NM.TeamLinkWatcher.TeamLinkWatcher -> -- link_watcher : TInterface (Name {namespace = "NM", name = "TeamLinkWatcher"})
    IO CInt

-- | Appends a new link watcher to the setting.
-- 
-- /Since: 1.12/
settingTeamPortAddLinkWatcher ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> NM.TeamLinkWatcher.TeamLinkWatcher
    -- ^ /@linkWatcher@/: the link watcher to add
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the link watcher is added; 'P.False' if an identical link
    -- watcher was already there.
settingTeamPortAddLinkWatcher :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> TeamLinkWatcher -> m Bool
settingTeamPortAddLinkWatcher a
setting TeamLinkWatcher
linkWatcher = 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr TeamLinkWatcher
linkWatcher' <- TeamLinkWatcher -> IO (Ptr TeamLinkWatcher)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TeamLinkWatcher
linkWatcher
    CInt
result <- Ptr SettingTeamPort -> Ptr TeamLinkWatcher -> IO CInt
nm_setting_team_port_add_link_watcher Ptr SettingTeamPort
setting' Ptr TeamLinkWatcher
linkWatcher'
    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
    TeamLinkWatcher -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TeamLinkWatcher
linkWatcher
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortAddLinkWatcherMethodInfo
instance (signature ~ (NM.TeamLinkWatcher.TeamLinkWatcher -> m Bool), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortAddLinkWatcherMethodInfo a signature where
    overloadedMethod = settingTeamPortAddLinkWatcher

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


#endif

-- method SettingTeamPort::clear_link_watchers
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_clear_link_watchers" nm_setting_team_port_clear_link_watchers :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO ()

-- | Removes all configured link watchers.
-- 
-- /Since: 1.12/
settingTeamPortClearLinkWatchers ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> m ()
settingTeamPortClearLinkWatchers :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> m ()
settingTeamPortClearLinkWatchers 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingTeamPort -> IO ()
nm_setting_team_port_clear_link_watchers Ptr SettingTeamPort
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 SettingTeamPortClearLinkWatchersMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortClearLinkWatchersMethodInfo a signature where
    overloadedMethod = settingTeamPortClearLinkWatchers

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


#endif

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

-- | /No description available in the introspection data./
settingTeamPortGetConfig ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> m T.Text
    -- ^ __Returns:__ the [SettingTeamPort:config]("GI.NM.Objects.SettingTeamPort#g:attr:config") property of the setting
settingTeamPortGetConfig :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> m Text
settingTeamPortGetConfig 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingTeamPort -> IO CString
nm_setting_team_port_get_config Ptr SettingTeamPort
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingTeamPortGetConfig" 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 SettingTeamPortGetConfigMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortGetConfigMethodInfo a signature where
    overloadedMethod = settingTeamPortGetConfig

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


#endif

-- method SettingTeamPort::get_lacp_key
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_get_lacp_key" nm_setting_team_port_get_lacp_key :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO Int32

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

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


#endif

-- method SettingTeamPort::get_lacp_prio
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_get_lacp_prio" nm_setting_team_port_get_lacp_prio :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO Int32

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

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


#endif

-- method SettingTeamPort::get_link_watcher
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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 link watcher to return"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       ]
-- Lengths: []
-- returnType: Just
--               (TInterface Name { namespace = "NM" , name = "TeamLinkWatcher" })
-- throws : False
-- Skip return : False

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.12/
settingTeamPortGetLinkWatcher ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> Word32
    -- ^ /@idx@/: index number of the link watcher to return
    -> m NM.TeamLinkWatcher.TeamLinkWatcher
    -- ^ __Returns:__ the link watcher at index /@idx@/.
settingTeamPortGetLinkWatcher :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> Word32 -> m TeamLinkWatcher
settingTeamPortGetLinkWatcher a
setting Word32
idx = IO TeamLinkWatcher -> m TeamLinkWatcher
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO TeamLinkWatcher -> m TeamLinkWatcher)
-> IO TeamLinkWatcher -> m TeamLinkWatcher
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr TeamLinkWatcher
result <- Ptr SettingTeamPort -> Word32 -> IO (Ptr TeamLinkWatcher)
nm_setting_team_port_get_link_watcher Ptr SettingTeamPort
setting' Word32
idx
    Text -> Ptr TeamLinkWatcher -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingTeamPortGetLinkWatcher" Ptr TeamLinkWatcher
result
    TeamLinkWatcher
result' <- ((ManagedPtr TeamLinkWatcher -> TeamLinkWatcher)
-> Ptr TeamLinkWatcher -> IO TeamLinkWatcher
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr TeamLinkWatcher -> TeamLinkWatcher
NM.TeamLinkWatcher.TeamLinkWatcher) Ptr TeamLinkWatcher
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    TeamLinkWatcher -> IO TeamLinkWatcher
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return TeamLinkWatcher
result'

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortGetLinkWatcherMethodInfo
instance (signature ~ (Word32 -> m NM.TeamLinkWatcher.TeamLinkWatcher), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortGetLinkWatcherMethodInfo a signature where
    overloadedMethod = settingTeamPortGetLinkWatcher

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


#endif

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.12/
settingTeamPortGetNumLinkWatchers ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> m Word32
    -- ^ __Returns:__ the number of configured link watchers
settingTeamPortGetNumLinkWatchers :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> m Word32
settingTeamPortGetNumLinkWatchers 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingTeamPort -> IO Word32
nm_setting_team_port_get_num_link_watchers Ptr SettingTeamPort
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 SettingTeamPortGetNumLinkWatchersMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortGetNumLinkWatchersMethodInfo a signature where
    overloadedMethod = settingTeamPortGetNumLinkWatchers

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


#endif

-- method SettingTeamPort::get_prio
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_get_prio" nm_setting_team_port_get_prio :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO Int32

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

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


#endif

-- method SettingTeamPort::get_queue_id
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_get_queue_id" nm_setting_team_port_get_queue_id :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO Int32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.12/
settingTeamPortGetQueueId ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> m Int32
    -- ^ __Returns:__ the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort':@/queue_id/@ property of the setting
settingTeamPortGetQueueId :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> m Int32
settingTeamPortGetQueueId 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Int32
result <- Ptr SettingTeamPort -> IO Int32
nm_setting_team_port_get_queue_id Ptr SettingTeamPort
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 SettingTeamPortGetQueueIdMethodInfo
instance (signature ~ (m Int32), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortGetQueueIdMethodInfo a signature where
    overloadedMethod = settingTeamPortGetQueueId

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


#endif

-- method SettingTeamPort::get_sticky
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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_team_port_get_sticky" nm_setting_team_port_get_sticky :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    IO CInt

-- | /No description available in the introspection data./
-- 
-- /Since: 1.12/
settingTeamPortGetSticky ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> m Bool
    -- ^ __Returns:__ the [SettingTeamPort:sticky]("GI.NM.Objects.SettingTeamPort#g:attr:sticky") property of the setting
settingTeamPortGetSticky :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> m Bool
settingTeamPortGetSticky 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingTeamPort -> IO CInt
nm_setting_team_port_get_sticky Ptr SettingTeamPort
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 SettingTeamPortGetStickyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortGetStickyMethodInfo a signature where
    overloadedMethod = settingTeamPortGetSticky

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


#endif

-- method SettingTeamPort::remove_link_watcher
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , 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 link watcher 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_team_port_remove_link_watcher" nm_setting_team_port_remove_link_watcher :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO ()

-- | Removes the link watcher at index @/idx/@.
-- 
-- /Since: 1.12/
settingTeamPortRemoveLinkWatcher ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> Word32
    -- ^ /@idx@/: index number of the link watcher to remove
    -> m ()
settingTeamPortRemoveLinkWatcher :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> Word32 -> m ()
settingTeamPortRemoveLinkWatcher 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingTeamPort -> Word32 -> IO ()
nm_setting_team_port_remove_link_watcher Ptr SettingTeamPort
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 SettingTeamPortRemoveLinkWatcherMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortRemoveLinkWatcherMethodInfo a signature where
    overloadedMethod = settingTeamPortRemoveLinkWatcher

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


#endif

-- method SettingTeamPort::remove_link_watcher_by_value
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingTeamPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingTeamPort"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "link_watcher"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "TeamLinkWatcher" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the link watcher 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_team_port_remove_link_watcher_by_value" nm_setting_team_port_remove_link_watcher_by_value :: 
    Ptr SettingTeamPort ->                  -- setting : TInterface (Name {namespace = "NM", name = "SettingTeamPort"})
    Ptr NM.TeamLinkWatcher.TeamLinkWatcher -> -- link_watcher : TInterface (Name {namespace = "NM", name = "TeamLinkWatcher"})
    IO CInt

-- | Removes the link watcher entry matching link_watcher.
-- 
-- /Since: 1.12/
settingTeamPortRemoveLinkWatcherByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingTeamPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingTeamPort.SettingTeamPort'
    -> NM.TeamLinkWatcher.TeamLinkWatcher
    -- ^ /@linkWatcher@/: the link watcher to remove
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the link watcher was found and removed, 'P.False' otherwise.
settingTeamPortRemoveLinkWatcherByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingTeamPort a) =>
a -> TeamLinkWatcher -> m Bool
settingTeamPortRemoveLinkWatcherByValue a
setting TeamLinkWatcher
linkWatcher = 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 SettingTeamPort
setting' <- a -> IO (Ptr SettingTeamPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr TeamLinkWatcher
linkWatcher' <- TeamLinkWatcher -> IO (Ptr TeamLinkWatcher)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr TeamLinkWatcher
linkWatcher
    CInt
result <- Ptr SettingTeamPort -> Ptr TeamLinkWatcher -> IO CInt
nm_setting_team_port_remove_link_watcher_by_value Ptr SettingTeamPort
setting' Ptr TeamLinkWatcher
linkWatcher'
    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
    TeamLinkWatcher -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr TeamLinkWatcher
linkWatcher
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingTeamPortRemoveLinkWatcherByValueMethodInfo
instance (signature ~ (NM.TeamLinkWatcher.TeamLinkWatcher -> m Bool), MonadIO m, IsSettingTeamPort a) => O.OverloadedMethod SettingTeamPortRemoveLinkWatcherByValueMethodInfo a signature where
    overloadedMethod = settingTeamPortRemoveLinkWatcherByValue

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


#endif