{-# LANGUAGE TypeApplications #-}


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

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

module GI.NM.Objects.SettingOvsPort
    ( 

-- * Exported types
    SettingOvsPort(..)                      ,
    IsSettingOvsPort                        ,
    toSettingOvsPort                        ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [addTrunk]("GI.NM.Objects.SettingOvsPort#g:method:addTrunk"), [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [clearTrunks]("GI.NM.Objects.SettingOvsPort#g:method:clearTrunks"), [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"), [removeTrunk]("GI.NM.Objects.SettingOvsPort#g:method:removeTrunk"), [removeTrunkByValue]("GI.NM.Objects.SettingOvsPort#g:method:removeTrunkByValue"), [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
-- [getBondDowndelay]("GI.NM.Objects.SettingOvsPort#g:method:getBondDowndelay"), [getBondMode]("GI.NM.Objects.SettingOvsPort#g:method:getBondMode"), [getBondUpdelay]("GI.NM.Objects.SettingOvsPort#g:method:getBondUpdelay"), [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDbusPropertyType]("GI.NM.Objects.Setting#g:method:getDbusPropertyType"), [getLacp]("GI.NM.Objects.SettingOvsPort#g:method:getLacp"), [getName]("GI.NM.Objects.Setting#g:method:getName"), [getNumTrunks]("GI.NM.Objects.SettingOvsPort#g:method:getNumTrunks"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getSecretFlags]("GI.NM.Objects.Setting#g:method:getSecretFlags"), [getTag]("GI.NM.Objects.SettingOvsPort#g:method:getTag"), [getTrunk]("GI.NM.Objects.SettingOvsPort#g:method:getTrunk"), [getVlanMode]("GI.NM.Objects.SettingOvsPort#g:method:getVlanMode").
-- 
-- ==== 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)
    ResolveSettingOvsPortMethod             ,
#endif

-- ** addTrunk #method:addTrunk#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortAddTrunkMethodInfo        ,
#endif
    settingOvsPortAddTrunk                  ,


-- ** clearTrunks #method:clearTrunks#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortClearTrunksMethodInfo     ,
#endif
    settingOvsPortClearTrunks               ,


-- ** getBondDowndelay #method:getBondDowndelay#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetBondDowndelayMethodInfo,
#endif
    settingOvsPortGetBondDowndelay          ,


-- ** getBondMode #method:getBondMode#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetBondModeMethodInfo     ,
#endif
    settingOvsPortGetBondMode               ,


-- ** getBondUpdelay #method:getBondUpdelay#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetBondUpdelayMethodInfo  ,
#endif
    settingOvsPortGetBondUpdelay            ,


-- ** getLacp #method:getLacp#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetLacpMethodInfo         ,
#endif
    settingOvsPortGetLacp                   ,


-- ** getNumTrunks #method:getNumTrunks#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetNumTrunksMethodInfo    ,
#endif
    settingOvsPortGetNumTrunks              ,


-- ** getTag #method:getTag#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetTagMethodInfo          ,
#endif
    settingOvsPortGetTag                    ,


-- ** getTrunk #method:getTrunk#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetTrunkMethodInfo        ,
#endif
    settingOvsPortGetTrunk                  ,


-- ** getVlanMode #method:getVlanMode#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortGetVlanModeMethodInfo     ,
#endif
    settingOvsPortGetVlanMode               ,


-- ** new #method:new#

    settingOvsPortNew                       ,


-- ** removeTrunk #method:removeTrunk#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortRemoveTrunkMethodInfo     ,
#endif
    settingOvsPortRemoveTrunk               ,


-- ** removeTrunkByValue #method:removeTrunkByValue#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortRemoveTrunkByValueMethodInfo,
#endif
    settingOvsPortRemoveTrunkByValue        ,




 -- * Properties


-- ** bondDowndelay #attr:bondDowndelay#
-- | The time port must be inactive in order to be considered down.
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortBondDowndelayPropertyInfo ,
#endif
    constructSettingOvsPortBondDowndelay    ,
    getSettingOvsPortBondDowndelay          ,
    setSettingOvsPortBondDowndelay          ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortBondDowndelay             ,
#endif


-- ** bondMode #attr:bondMode#
-- | Bonding mode. One of \"active-backup\", \"balance-slb\", or \"balance-tcp\".
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortBondModePropertyInfo      ,
#endif
    clearSettingOvsPortBondMode             ,
    constructSettingOvsPortBondMode         ,
    getSettingOvsPortBondMode               ,
    setSettingOvsPortBondMode               ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortBondMode                  ,
#endif


-- ** bondUpdelay #attr:bondUpdelay#
-- | The time port must be active before it starts forwarding traffic.
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortBondUpdelayPropertyInfo   ,
#endif
    constructSettingOvsPortBondUpdelay      ,
    getSettingOvsPortBondUpdelay            ,
    setSettingOvsPortBondUpdelay            ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortBondUpdelay               ,
#endif


-- ** lacp #attr:lacp#
-- | LACP mode. One of \"active\", \"off\", or \"passive\".
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortLacpPropertyInfo          ,
#endif
    clearSettingOvsPortLacp                 ,
    constructSettingOvsPortLacp             ,
    getSettingOvsPortLacp                   ,
    setSettingOvsPortLacp                   ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortLacp                      ,
#endif


-- ** tag #attr:tag#
-- | The VLAN tag in the range 0-4095.
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortTagPropertyInfo           ,
#endif
    constructSettingOvsPortTag              ,
    getSettingOvsPortTag                    ,
    setSettingOvsPortTag                    ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortTag                       ,
#endif


-- ** trunks #attr:trunks#

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortTrunksPropertyInfo        ,
#endif
#if defined(ENABLE_OVERLOADING)
    settingOvsPortTrunks                    ,
#endif


-- ** vlanMode #attr:vlanMode#
-- | The VLAN mode. One of \"access\", \"native-tagged\", \"native-untagged\",
-- \"trunk\", \"dot1q-tunnel\" or unset.
-- 
-- /Since: 1.10/

#if defined(ENABLE_OVERLOADING)
    SettingOvsPortVlanModePropertyInfo      ,
#endif
    clearSettingOvsPortVlanMode             ,
    constructSettingOvsPortVlanMode         ,
    getSettingOvsPortVlanMode               ,
    setSettingOvsPortVlanMode               ,
#if defined(ENABLE_OVERLOADING)
    settingOvsPortVlanMode                  ,
#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.SettingPpp as NM.SettingPpp
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPppoe as NM.SettingPppoe
import {-# SOURCE #-} qualified GI.NM.Objects.SettingProxy as NM.SettingProxy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingSerial as NM.SettingSerial
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTCConfig as NM.SettingTCConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeam as NM.SettingTeam
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeamPort as NM.SettingTeamPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTun as NM.SettingTun
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVlan as NM.SettingVlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVpn as NM.SettingVpn
import {-# SOURCE #-} qualified GI.NM.Objects.SettingVxlan as NM.SettingVxlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWimax as NM.SettingWimax
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWired as NM.SettingWired
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWireless as NM.SettingWireless
import {-# SOURCE #-} qualified GI.NM.Objects.SettingWirelessSecurity as NM.SettingWirelessSecurity
import {-# SOURCE #-} qualified GI.NM.Structs.BridgeVlan as NM.BridgeVlan
import {-# SOURCE #-} qualified GI.NM.Structs.IPAddress as NM.IPAddress
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoute as NM.IPRoute
import {-# SOURCE #-} qualified GI.NM.Structs.IPRoutingRule as NM.IPRoutingRule
import {-# SOURCE #-} qualified GI.NM.Structs.Range as NM.Range
import {-# SOURCE #-} qualified GI.NM.Structs.TCAction as NM.TCAction
import {-# SOURCE #-} qualified GI.NM.Structs.TCQdisc as NM.TCQdisc
import {-# SOURCE #-} qualified GI.NM.Structs.TCTfilter as NM.TCTfilter
import {-# SOURCE #-} qualified GI.NM.Structs.TeamLinkWatcher as NM.TeamLinkWatcher
import {-# SOURCE #-} qualified GI.NM.Structs.VariantAttributeSpec as NM.VariantAttributeSpec

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

#endif

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

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

foreign import ccall "nm_setting_ovs_port_get_type"
    c_nm_setting_ovs_port_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingOvsPort where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_ovs_port_get_type

instance B.Types.GObject SettingOvsPort

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

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

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveSettingOvsPortMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSettingOvsPortMethod "addTrunk" o = SettingOvsPortAddTrunkMethodInfo
    ResolveSettingOvsPortMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSettingOvsPortMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSettingOvsPortMethod "clearTrunks" o = SettingOvsPortClearTrunksMethodInfo
    ResolveSettingOvsPortMethod "compare" o = NM.Setting.SettingCompareMethodInfo
    ResolveSettingOvsPortMethod "diff" o = NM.Setting.SettingDiffMethodInfo
    ResolveSettingOvsPortMethod "duplicate" o = NM.Setting.SettingDuplicateMethodInfo
    ResolveSettingOvsPortMethod "enumerateValues" o = NM.Setting.SettingEnumerateValuesMethodInfo
    ResolveSettingOvsPortMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSettingOvsPortMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSettingOvsPortMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSettingOvsPortMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSettingOvsPortMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSettingOvsPortMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSettingOvsPortMethod "optionClearByName" o = NM.Setting.SettingOptionClearByNameMethodInfo
    ResolveSettingOvsPortMethod "optionGet" o = NM.Setting.SettingOptionGetMethodInfo
    ResolveSettingOvsPortMethod "optionGetAllNames" o = NM.Setting.SettingOptionGetAllNamesMethodInfo
    ResolveSettingOvsPortMethod "optionGetBoolean" o = NM.Setting.SettingOptionGetBooleanMethodInfo
    ResolveSettingOvsPortMethod "optionGetUint32" o = NM.Setting.SettingOptionGetUint32MethodInfo
    ResolveSettingOvsPortMethod "optionSet" o = NM.Setting.SettingOptionSetMethodInfo
    ResolveSettingOvsPortMethod "optionSetBoolean" o = NM.Setting.SettingOptionSetBooleanMethodInfo
    ResolveSettingOvsPortMethod "optionSetUint32" o = NM.Setting.SettingOptionSetUint32MethodInfo
    ResolveSettingOvsPortMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSettingOvsPortMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSettingOvsPortMethod "removeTrunk" o = SettingOvsPortRemoveTrunkMethodInfo
    ResolveSettingOvsPortMethod "removeTrunkByValue" o = SettingOvsPortRemoveTrunkByValueMethodInfo
    ResolveSettingOvsPortMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSettingOvsPortMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSettingOvsPortMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSettingOvsPortMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSettingOvsPortMethod "toString" o = NM.Setting.SettingToStringMethodInfo
    ResolveSettingOvsPortMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSettingOvsPortMethod "verify" o = NM.Setting.SettingVerifyMethodInfo
    ResolveSettingOvsPortMethod "verifySecrets" o = NM.Setting.SettingVerifySecretsMethodInfo
    ResolveSettingOvsPortMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSettingOvsPortMethod "getBondDowndelay" o = SettingOvsPortGetBondDowndelayMethodInfo
    ResolveSettingOvsPortMethod "getBondMode" o = SettingOvsPortGetBondModeMethodInfo
    ResolveSettingOvsPortMethod "getBondUpdelay" o = SettingOvsPortGetBondUpdelayMethodInfo
    ResolveSettingOvsPortMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSettingOvsPortMethod "getDbusPropertyType" o = NM.Setting.SettingGetDbusPropertyTypeMethodInfo
    ResolveSettingOvsPortMethod "getLacp" o = SettingOvsPortGetLacpMethodInfo
    ResolveSettingOvsPortMethod "getName" o = NM.Setting.SettingGetNameMethodInfo
    ResolveSettingOvsPortMethod "getNumTrunks" o = SettingOvsPortGetNumTrunksMethodInfo
    ResolveSettingOvsPortMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSettingOvsPortMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSettingOvsPortMethod "getSecretFlags" o = NM.Setting.SettingGetSecretFlagsMethodInfo
    ResolveSettingOvsPortMethod "getTag" o = SettingOvsPortGetTagMethodInfo
    ResolveSettingOvsPortMethod "getTrunk" o = SettingOvsPortGetTrunkMethodInfo
    ResolveSettingOvsPortMethod "getVlanMode" o = SettingOvsPortGetVlanModeMethodInfo
    ResolveSettingOvsPortMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSettingOvsPortMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSettingOvsPortMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSettingOvsPortMethod "setSecretFlags" o = NM.Setting.SettingSetSecretFlagsMethodInfo
    ResolveSettingOvsPortMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

-- VVV Prop "bond-downdelay"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

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

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

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

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortBondModePropertyInfo
instance AttrInfo SettingOvsPortBondModePropertyInfo where
    type AttrAllowedOps SettingOvsPortBondModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingOvsPortBondModePropertyInfo = IsSettingOvsPort
    type AttrSetTypeConstraint SettingOvsPortBondModePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingOvsPortBondModePropertyInfo = (~) T.Text
    type AttrTransferType SettingOvsPortBondModePropertyInfo = T.Text
    type AttrGetType SettingOvsPortBondModePropertyInfo = T.Text
    type AttrLabel SettingOvsPortBondModePropertyInfo = "bond-mode"
    type AttrOrigin SettingOvsPortBondModePropertyInfo = SettingOvsPort
    attrGet = getSettingOvsPortBondMode
    attrSet = setSettingOvsPortBondMode
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingOvsPortBondMode
    attrClear = clearSettingOvsPortBondMode
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingOvsPort.bondMode"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingOvsPort.html#g:attr:bondMode"
        })
#endif

-- VVV Prop "bond-updelay"
   -- Type: TBasicType TUInt
   -- Flags: [PropertyReadable,PropertyWritable]
   -- Nullable: (Just False,Nothing)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortVlanModePropertyInfo
instance AttrInfo SettingOvsPortVlanModePropertyInfo where
    type AttrAllowedOps SettingOvsPortVlanModePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint SettingOvsPortVlanModePropertyInfo = IsSettingOvsPort
    type AttrSetTypeConstraint SettingOvsPortVlanModePropertyInfo = (~) T.Text
    type AttrTransferTypeConstraint SettingOvsPortVlanModePropertyInfo = (~) T.Text
    type AttrTransferType SettingOvsPortVlanModePropertyInfo = T.Text
    type AttrGetType SettingOvsPortVlanModePropertyInfo = T.Text
    type AttrLabel SettingOvsPortVlanModePropertyInfo = "vlan-mode"
    type AttrOrigin SettingOvsPortVlanModePropertyInfo = SettingOvsPort
    attrGet = getSettingOvsPortVlanMode
    attrSet = setSettingOvsPortVlanMode
    attrTransfer _ v = do
        return v
    attrConstruct = constructSettingOvsPortVlanMode
    attrClear = clearSettingOvsPortVlanMode
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.NM.Objects.SettingOvsPort.vlanMode"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-nm-1.0.1/docs/GI-NM-Objects-SettingOvsPort.html#g:attr:vlanMode"
        })
#endif

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingOvsPort
type instance O.AttributeList SettingOvsPort = SettingOvsPortAttributeList
type SettingOvsPortAttributeList = ('[ '("bondDowndelay", SettingOvsPortBondDowndelayPropertyInfo), '("bondMode", SettingOvsPortBondModePropertyInfo), '("bondUpdelay", SettingOvsPortBondUpdelayPropertyInfo), '("lacp", SettingOvsPortLacpPropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("tag", SettingOvsPortTagPropertyInfo), '("trunks", SettingOvsPortTrunksPropertyInfo), '("vlanMode", SettingOvsPortVlanModePropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingOvsPortBondDowndelay :: AttrLabelProxy "bondDowndelay"
settingOvsPortBondDowndelay = AttrLabelProxy

settingOvsPortBondMode :: AttrLabelProxy "bondMode"
settingOvsPortBondMode = AttrLabelProxy

settingOvsPortBondUpdelay :: AttrLabelProxy "bondUpdelay"
settingOvsPortBondUpdelay = AttrLabelProxy

settingOvsPortLacp :: AttrLabelProxy "lacp"
settingOvsPortLacp = AttrLabelProxy

settingOvsPortTag :: AttrLabelProxy "tag"
settingOvsPortTag = AttrLabelProxy

settingOvsPortTrunks :: AttrLabelProxy "trunks"
settingOvsPortTrunks = AttrLabelProxy

settingOvsPortVlanMode :: AttrLabelProxy "vlanMode"
settingOvsPortVlanMode = AttrLabelProxy

#endif

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

#endif

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

foreign import ccall "nm_setting_ovs_port_new" nm_setting_ovs_port_new :: 
    IO (Ptr SettingOvsPort)

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

#if defined(ENABLE_OVERLOADING)
#endif

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

foreign import ccall "nm_setting_ovs_port_add_trunk" nm_setting_ovs_port_add_trunk :: 
    Ptr SettingOvsPort ->                   -- setting : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    Ptr NM.Range.Range ->                   -- trunk : TInterface (Name {namespace = "NM", name = "Range"})
    IO ()

-- | Appends a new trunk range to the setting.
-- This takes a reference to /@trunk@/.
-- 
-- /Since: 1.42/
settingOvsPortAddTrunk ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> NM.Range.Range
    -- ^ /@trunk@/: the trunk to add
    -> m ()
settingOvsPortAddTrunk :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> Range -> m ()
settingOvsPortAddTrunk a
setting Range
trunk = 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 SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr Range
trunk' <- Range -> IO (Ptr Range)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr Range
trunk
    Ptr SettingOvsPort -> Ptr Range -> IO ()
nm_setting_ovs_port_add_trunk Ptr SettingOvsPort
setting' Ptr Range
trunk'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Range -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr Range
trunk
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortAddTrunkMethodInfo
instance (signature ~ (NM.Range.Range -> m ()), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortAddTrunkMethodInfo a signature where
    overloadedMethod = settingOvsPortAddTrunk

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


#endif

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

-- | Removes all configured trunk ranges.
-- 
-- /Since: 1.42/
settingOvsPortClearTrunks ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m ()
settingOvsPortClearTrunks :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m ()
settingOvsPortClearTrunks 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 SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingOvsPort -> IO ()
nm_setting_ovs_port_clear_trunks Ptr SettingOvsPort
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 SettingOvsPortClearTrunksMethodInfo
instance (signature ~ (m ()), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortClearTrunksMethodInfo a signature where
    overloadedMethod = settingOvsPortClearTrunks

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


#endif

-- method SettingOvsPort::get_bond_downdelay
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_bond_downdelay" nm_setting_ovs_port_get_bond_downdelay :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO Word32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetBondDowndelay ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m Word32
    -- ^ __Returns:__ the [SettingOvsPort:bondDowndelay]("GI.NM.Objects.SettingOvsPort#g:attr:bondDowndelay") property of the setting
settingOvsPortGetBondDowndelay :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Word32
settingOvsPortGetBondDowndelay a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr SettingOvsPort -> IO Word32
nm_setting_ovs_port_get_bond_downdelay Ptr SettingOvsPort
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetBondDowndelayMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetBondDowndelayMethodInfo a signature where
    overloadedMethod = settingOvsPortGetBondDowndelay

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


#endif

-- method SettingOvsPort::get_bond_mode
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_bond_mode" nm_setting_ovs_port_get_bond_mode :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO CString

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetBondMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m T.Text
    -- ^ __Returns:__ the [SettingOvsPort:bondMode]("GI.NM.Objects.SettingOvsPort#g:attr:bondMode") property of the setting
settingOvsPortGetBondMode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Text
settingOvsPortGetBondMode a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr SettingOvsPort -> IO CString
nm_setting_ovs_port_get_bond_mode Ptr SettingOvsPort
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingOvsPortGetBondMode" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetBondModeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetBondModeMethodInfo a signature where
    overloadedMethod = settingOvsPortGetBondMode

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


#endif

-- method SettingOvsPort::get_bond_updelay
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_bond_updelay" nm_setting_ovs_port_get_bond_updelay :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO Word32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetBondUpdelay ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m Word32
    -- ^ __Returns:__ the [SettingOvsPort:bondUpdelay]("GI.NM.Objects.SettingOvsPort#g:attr:bondUpdelay") property of the setting
settingOvsPortGetBondUpdelay :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Word32
settingOvsPortGetBondUpdelay a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr SettingOvsPort -> IO Word32
nm_setting_ovs_port_get_bond_updelay Ptr SettingOvsPort
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetBondUpdelayMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetBondUpdelayMethodInfo a signature where
    overloadedMethod = settingOvsPortGetBondUpdelay

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


#endif

-- method SettingOvsPort::get_lacp
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_lacp" nm_setting_ovs_port_get_lacp :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO CString

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetLacp ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m T.Text
    -- ^ __Returns:__ the [SettingOvsPort:lacp]("GI.NM.Objects.SettingOvsPort#g:attr:lacp") property of the setting
settingOvsPortGetLacp :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Text
settingOvsPortGetLacp a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr SettingOvsPort -> IO CString
nm_setting_ovs_port_get_lacp Ptr SettingOvsPort
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingOvsPortGetLacp" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetLacpMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetLacpMethodInfo a signature where
    overloadedMethod = settingOvsPortGetLacp

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


#endif

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.42/
settingOvsPortGetNumTrunks ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m Word32
    -- ^ __Returns:__ the number of trunk ranges
settingOvsPortGetNumTrunks :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Word32
settingOvsPortGetNumTrunks 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 SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingOvsPort -> IO Word32
nm_setting_ovs_port_get_num_trunks Ptr SettingOvsPort
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 SettingOvsPortGetNumTrunksMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetNumTrunksMethodInfo a signature where
    overloadedMethod = settingOvsPortGetNumTrunks

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


#endif

-- method SettingOvsPort::get_tag
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_tag" nm_setting_ovs_port_get_tag :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO Word32

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetTag ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m Word32
    -- ^ __Returns:__ the [SettingOvsPort:tag]("GI.NM.Objects.SettingOvsPort#g:attr:tag") property of the setting
settingOvsPortGetTag :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Word32
settingOvsPortGetTag a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Word32
result <- Ptr SettingOvsPort -> IO Word32
nm_setting_ovs_port_get_tag Ptr SettingOvsPort
self'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetTagMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetTagMethodInfo a signature where
    overloadedMethod = settingOvsPortGetTag

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


#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.42/
settingOvsPortGetTrunk ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> Word32
    -- ^ /@idx@/: index number of the trunk range to return
    -> m NM.Range.Range
    -- ^ __Returns:__ the trunk range at index /@idx@/
settingOvsPortGetTrunk :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> Word32 -> m Range
settingOvsPortGetTrunk a
setting Word32
idx = IO Range -> m Range
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Range -> m Range) -> IO Range -> m Range
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr Range
result <- Ptr SettingOvsPort -> Word32 -> IO (Ptr Range)
nm_setting_ovs_port_get_trunk Ptr SettingOvsPort
setting' Word32
idx
    Text -> Ptr Range -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingOvsPortGetTrunk" Ptr Range
result
    Range
result' <- ((ManagedPtr Range -> Range) -> Ptr Range -> IO Range
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
newBoxed ManagedPtr Range -> Range
NM.Range.Range) Ptr Range
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Range -> IO Range
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Range
result'

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetTrunkMethodInfo
instance (signature ~ (Word32 -> m NM.Range.Range), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetTrunkMethodInfo a signature where
    overloadedMethod = settingOvsPortGetTrunk

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


#endif

-- method SettingOvsPort::get_vlan_mode
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "self"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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_ovs_port_get_vlan_mode" nm_setting_ovs_port_get_vlan_mode :: 
    Ptr SettingOvsPort ->                   -- self : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    IO CString

-- | /No description available in the introspection data./
-- 
-- /Since: 1.10/
settingOvsPortGetVlanMode ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@self@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> m T.Text
    -- ^ __Returns:__ the [SettingOvsPort:vlanMode]("GI.NM.Objects.SettingOvsPort#g:attr:vlanMode") property of the setting
settingOvsPortGetVlanMode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> m Text
settingOvsPortGetVlanMode a
self = 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 SettingOvsPort
self' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CString
result <- Ptr SettingOvsPort -> IO CString
nm_setting_ovs_port_get_vlan_mode Ptr SettingOvsPort
self'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingOvsPortGetVlanMode" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingOvsPortGetVlanModeMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortGetVlanModeMethodInfo a signature where
    overloadedMethod = settingOvsPortGetVlanMode

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


#endif

-- method SettingOvsPort::remove_trunk
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , 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 trunk range."
--                 , 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_ovs_port_remove_trunk" nm_setting_ovs_port_remove_trunk :: 
    Ptr SettingOvsPort ->                   -- setting : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    Word32 ->                               -- idx : TBasicType TUInt
    IO ()

-- | Removes the trunk range at index /@idx@/.
-- 
-- /Since: 1.42/
settingOvsPortRemoveTrunk ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> Word32
    -- ^ /@idx@/: index number of the trunk range.
    -> m ()
settingOvsPortRemoveTrunk :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> Word32 -> m ()
settingOvsPortRemoveTrunk 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 SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Ptr SettingOvsPort -> Word32 -> IO ()
nm_setting_ovs_port_remove_trunk Ptr SettingOvsPort
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 SettingOvsPortRemoveTrunkMethodInfo
instance (signature ~ (Word32 -> m ()), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortRemoveTrunkMethodInfo a signature where
    overloadedMethod = settingOvsPortRemoveTrunk

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


#endif

-- method SettingOvsPort::remove_trunk_by_value
-- method type : OrdinaryMethod
-- Args: [ Arg
--           { argCName = "setting"
--           , argType =
--               TInterface Name { namespace = "NM" , name = "SettingOvsPort" }
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the #NMSettingOvsPort"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "start"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the trunk range start index"
--                 , sinceVersion = Nothing
--                 }
--           , argScope = ScopeTypeInvalid
--           , argClosure = -1
--           , argDestroy = -1
--           , argCallerAllocates = False
--           , argCallbackUserData = False
--           , transfer = TransferNothing
--           }
--       , Arg
--           { argCName = "end"
--           , argType = TBasicType TUInt
--           , direction = DirectionIn
--           , mayBeNull = False
--           , argDoc =
--               Documentation
--                 { rawDocText = Just "the trunk range end index"
--                 , 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_ovs_port_remove_trunk_by_value" nm_setting_ovs_port_remove_trunk_by_value :: 
    Ptr SettingOvsPort ->                   -- setting : TInterface (Name {namespace = "NM", name = "SettingOvsPort"})
    Word32 ->                               -- start : TBasicType TUInt
    Word32 ->                               -- end : TBasicType TUInt
    IO CInt

-- | Remove the trunk range with range /@start@/ to /@end@/.
-- 
-- /Since: 1.42/
settingOvsPortRemoveTrunkByValue ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingOvsPort a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingOvsPort.SettingOvsPort'
    -> Word32
    -- ^ /@start@/: the trunk range start index
    -> Word32
    -- ^ /@end@/: the trunk range end index
    -> m Bool
    -- ^ __Returns:__ 'P.True' if the trunk range was found and removed; 'P.False' otherwise
settingOvsPortRemoveTrunkByValue :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingOvsPort a) =>
a -> Word32 -> Word32 -> m Bool
settingOvsPortRemoveTrunkByValue a
setting Word32
start Word32
end = 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 SettingOvsPort
setting' <- a -> IO (Ptr SettingOvsPort)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingOvsPort -> Word32 -> Word32 -> IO CInt
nm_setting_ovs_port_remove_trunk_by_value Ptr SettingOvsPort
setting' Word32
start Word32
end
    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 SettingOvsPortRemoveTrunkByValueMethodInfo
instance (signature ~ (Word32 -> Word32 -> m Bool), MonadIO m, IsSettingOvsPort a) => O.OverloadedMethod SettingOvsPortRemoveTrunkByValueMethodInfo a signature where
    overloadedMethod = settingOvsPortRemoveTrunkByValue

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


#endif