{-# LANGUAGE TypeApplications #-}


-- | Copyright  : Will Thompson and Iñaki García Etxebarria
-- License    : LGPL-2.1
-- Maintainer : Iñaki García Etxebarria
-- 
-- HSR\/PRP Settings

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

module GI.NM.Objects.SettingHsr
    ( 

-- * Exported types
    SettingHsr(..)                          ,
    IsSettingHsr                            ,
    toSettingHsr                            ,


 -- * Methods
-- | 
-- 
--  === __Click to display all available methods, including inherited ones__
-- ==== Methods
-- [bindProperty]("GI.GObject.Objects.Object#g:method:bindProperty"), [bindPropertyFull]("GI.GObject.Objects.Object#g:method:bindPropertyFull"), [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"), [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
-- [getData]("GI.GObject.Objects.Object#g:method:getData"), [getDbusPropertyType]("GI.NM.Objects.Setting#g:method:getDbusPropertyType"), [getMulticastSpec]("GI.NM.Objects.SettingHsr#g:method:getMulticastSpec"), [getName]("GI.NM.Objects.Setting#g:method:getName"), [getPort1]("GI.NM.Objects.SettingHsr#g:method:getPort1"), [getPort2]("GI.NM.Objects.SettingHsr#g:method:getPort2"), [getProperty]("GI.GObject.Objects.Object#g:method:getProperty"), [getPrp]("GI.NM.Objects.SettingHsr#g:method:getPrp"), [getQdata]("GI.GObject.Objects.Object#g:method:getQdata"), [getSecretFlags]("GI.NM.Objects.Setting#g:method:getSecretFlags").
-- 
-- ==== Setters
-- [setData]("GI.GObject.Objects.Object#g:method:setData"), [setDataFull]("GI.GObject.Objects.Object#g:method:setDataFull"), [setProperty]("GI.GObject.Objects.Object#g:method:setProperty"), [setSecretFlags]("GI.NM.Objects.Setting#g:method:setSecretFlags").

#if defined(ENABLE_OVERLOADING)
    ResolveSettingHsrMethod                 ,
#endif

-- ** getMulticastSpec #method:getMulticastSpec#

#if defined(ENABLE_OVERLOADING)
    SettingHsrGetMulticastSpecMethodInfo    ,
#endif
    settingHsrGetMulticastSpec              ,


-- ** getPort1 #method:getPort1#

#if defined(ENABLE_OVERLOADING)
    SettingHsrGetPort1MethodInfo            ,
#endif
    settingHsrGetPort1                      ,


-- ** getPort2 #method:getPort2#

#if defined(ENABLE_OVERLOADING)
    SettingHsrGetPort2MethodInfo            ,
#endif
    settingHsrGetPort2                      ,


-- ** getPrp #method:getPrp#

#if defined(ENABLE_OVERLOADING)
    SettingHsrGetPrpMethodInfo              ,
#endif
    settingHsrGetPrp                        ,


-- ** new #method:new#

    settingHsrNew                           ,




 -- * Properties


-- ** multicastSpec #attr:multicastSpec#
-- | The last byte of supervision address.
-- 
-- /Since: 1.46/

#if defined(ENABLE_OVERLOADING)
    SettingHsrMulticastSpecPropertyInfo     ,
#endif
    constructSettingHsrMulticastSpec        ,
    getSettingHsrMulticastSpec              ,
    setSettingHsrMulticastSpec              ,
#if defined(ENABLE_OVERLOADING)
    settingHsrMulticastSpec                 ,
#endif


-- ** port1 #attr:port1#
-- | The port1 interface name of the HSR. This property is mandatory.
-- 
-- /Since: 1.46/

#if defined(ENABLE_OVERLOADING)
    SettingHsrPort1PropertyInfo             ,
#endif
    clearSettingHsrPort1                    ,
    constructSettingHsrPort1                ,
    getSettingHsrPort1                      ,
    setSettingHsrPort1                      ,
#if defined(ENABLE_OVERLOADING)
    settingHsrPort1                         ,
#endif


-- ** port2 #attr:port2#
-- | The port2 interface name of the HSR. This property is mandatory.
-- 
-- /Since: 1.46/

#if defined(ENABLE_OVERLOADING)
    SettingHsrPort2PropertyInfo             ,
#endif
    clearSettingHsrPort2                    ,
    constructSettingHsrPort2                ,
    getSettingHsrPort2                      ,
    setSettingHsrPort2                      ,
#if defined(ENABLE_OVERLOADING)
    settingHsrPort2                         ,
#endif


-- ** prp #attr:prp#
-- | The protocol used by the interface, whether it is PRP or HSR.
-- 
-- /Since: 1.46/

#if defined(ENABLE_OVERLOADING)
    SettingHsrPrpPropertyInfo               ,
#endif
    constructSettingHsrPrp                  ,
    getSettingHsrPrp                        ,
    setSettingHsrPrp                        ,
#if defined(ENABLE_OVERLOADING)
    settingHsrPrp                           ,
#endif




    ) where

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

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

-- Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/23392
#if MIN_VERSION_base(4,18,0)
import qualified GI.GLib.Structs.Bytes as GLib.Bytes
import qualified GI.GLib.Structs.VariantType as GLib.VariantType
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.NM.Callbacks as NM.Callbacks
import {-# SOURCE #-} qualified GI.NM.Enums as NM.Enums
import {-# SOURCE #-} qualified GI.NM.Flags as NM.Flags
import {-# SOURCE #-} qualified GI.NM.Interfaces.Connection as NM.Connection
import {-# SOURCE #-} qualified GI.NM.Objects.Setting as NM.Setting
import {-# SOURCE #-} qualified GI.NM.Objects.Setting8021x as NM.Setting8021x
import {-# SOURCE #-} qualified GI.NM.Objects.SettingAdsl as NM.SettingAdsl
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBluetooth as NM.SettingBluetooth
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBond as NM.SettingBond
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridge as NM.SettingBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingBridgePort as NM.SettingBridgePort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingCdma as NM.SettingCdma
import {-# SOURCE #-} qualified GI.NM.Objects.SettingConnection as NM.SettingConnection
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDcb as NM.SettingDcb
import {-# SOURCE #-} qualified GI.NM.Objects.SettingDummy as NM.SettingDummy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGeneric as NM.SettingGeneric
import {-# SOURCE #-} qualified GI.NM.Objects.SettingGsm as NM.SettingGsm
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIP4Config as NM.SettingIP4Config
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIP6Config as NM.SettingIP6Config
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPConfig as NM.SettingIPConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingIPTunnel as NM.SettingIPTunnel
import {-# SOURCE #-} qualified GI.NM.Objects.SettingInfiniband as NM.SettingInfiniband
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacsec as NM.SettingMacsec
import {-# SOURCE #-} qualified GI.NM.Objects.SettingMacvlan as NM.SettingMacvlan
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOlpcMesh as NM.SettingOlpcMesh
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsBridge as NM.SettingOvsBridge
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsInterface as NM.SettingOvsInterface
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPatch as NM.SettingOvsPatch
import {-# SOURCE #-} qualified GI.NM.Objects.SettingOvsPort as NM.SettingOvsPort
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPpp as NM.SettingPpp
import {-# SOURCE #-} qualified GI.NM.Objects.SettingPppoe as NM.SettingPppoe
import {-# SOURCE #-} qualified GI.NM.Objects.SettingProxy as NM.SettingProxy
import {-# SOURCE #-} qualified GI.NM.Objects.SettingSerial as NM.SettingSerial
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTCConfig as NM.SettingTCConfig
import {-# SOURCE #-} qualified GI.NM.Objects.SettingTeam as NM.SettingTeam
import {-# SOURCE #-} qualified GI.NM.Objects.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

#endif

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

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

foreign import ccall "nm_setting_hsr_get_type"
    c_nm_setting_hsr_get_type :: IO B.Types.GType

instance B.Types.TypedObject SettingHsr where
    glibType :: IO GType
glibType = IO GType
c_nm_setting_hsr_get_type

instance B.Types.GObject SettingHsr

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

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

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

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

#if defined(ENABLE_OVERLOADING)
type family ResolveSettingHsrMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
    ResolveSettingHsrMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveSettingHsrMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveSettingHsrMethod "compare" o = NM.Setting.SettingCompareMethodInfo
    ResolveSettingHsrMethod "diff" o = NM.Setting.SettingDiffMethodInfo
    ResolveSettingHsrMethod "duplicate" o = NM.Setting.SettingDuplicateMethodInfo
    ResolveSettingHsrMethod "enumerateValues" o = NM.Setting.SettingEnumerateValuesMethodInfo
    ResolveSettingHsrMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveSettingHsrMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveSettingHsrMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveSettingHsrMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveSettingHsrMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveSettingHsrMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveSettingHsrMethod "optionClearByName" o = NM.Setting.SettingOptionClearByNameMethodInfo
    ResolveSettingHsrMethod "optionGet" o = NM.Setting.SettingOptionGetMethodInfo
    ResolveSettingHsrMethod "optionGetAllNames" o = NM.Setting.SettingOptionGetAllNamesMethodInfo
    ResolveSettingHsrMethod "optionGetBoolean" o = NM.Setting.SettingOptionGetBooleanMethodInfo
    ResolveSettingHsrMethod "optionGetUint32" o = NM.Setting.SettingOptionGetUint32MethodInfo
    ResolveSettingHsrMethod "optionSet" o = NM.Setting.SettingOptionSetMethodInfo
    ResolveSettingHsrMethod "optionSetBoolean" o = NM.Setting.SettingOptionSetBooleanMethodInfo
    ResolveSettingHsrMethod "optionSetUint32" o = NM.Setting.SettingOptionSetUint32MethodInfo
    ResolveSettingHsrMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveSettingHsrMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveSettingHsrMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveSettingHsrMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveSettingHsrMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveSettingHsrMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveSettingHsrMethod "toString" o = NM.Setting.SettingToStringMethodInfo
    ResolveSettingHsrMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveSettingHsrMethod "verify" o = NM.Setting.SettingVerifyMethodInfo
    ResolveSettingHsrMethod "verifySecrets" o = NM.Setting.SettingVerifySecretsMethodInfo
    ResolveSettingHsrMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveSettingHsrMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveSettingHsrMethod "getDbusPropertyType" o = NM.Setting.SettingGetDbusPropertyTypeMethodInfo
    ResolveSettingHsrMethod "getMulticastSpec" o = SettingHsrGetMulticastSpecMethodInfo
    ResolveSettingHsrMethod "getName" o = NM.Setting.SettingGetNameMethodInfo
    ResolveSettingHsrMethod "getPort1" o = SettingHsrGetPort1MethodInfo
    ResolveSettingHsrMethod "getPort2" o = SettingHsrGetPort2MethodInfo
    ResolveSettingHsrMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveSettingHsrMethod "getPrp" o = SettingHsrGetPrpMethodInfo
    ResolveSettingHsrMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveSettingHsrMethod "getSecretFlags" o = NM.Setting.SettingGetSecretFlagsMethodInfo
    ResolveSettingHsrMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveSettingHsrMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveSettingHsrMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveSettingHsrMethod "setSecretFlags" o = NM.Setting.SettingSetSecretFlagsMethodInfo
    ResolveSettingHsrMethod l o = O.MethodResolutionFailed l o

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

#endif

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

#endif

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList SettingHsr
type instance O.AttributeList SettingHsr = SettingHsrAttributeList
type SettingHsrAttributeList = ('[ '("multicastSpec", SettingHsrMulticastSpecPropertyInfo), '("name", NM.Setting.SettingNamePropertyInfo), '("port1", SettingHsrPort1PropertyInfo), '("port2", SettingHsrPort2PropertyInfo), '("prp", SettingHsrPrpPropertyInfo)] :: [(Symbol, DK.Type)])
#endif

#if defined(ENABLE_OVERLOADING)
settingHsrMulticastSpec :: AttrLabelProxy "multicastSpec"
settingHsrMulticastSpec = AttrLabelProxy

settingHsrPort1 :: AttrLabelProxy "port1"
settingHsrPort1 = AttrLabelProxy

settingHsrPort2 :: AttrLabelProxy "port2"
settingHsrPort2 = AttrLabelProxy

settingHsrPrp :: AttrLabelProxy "prp"
settingHsrPrp = AttrLabelProxy

#endif

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

#endif

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

foreign import ccall "nm_setting_hsr_new" nm_setting_hsr_new :: 
    IO (Ptr SettingHsr)

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

#if defined(ENABLE_OVERLOADING)
#endif

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

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.46/
settingHsrGetMulticastSpec ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingHsr a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingHsr.SettingHsr'
    -> m Word32
    -- ^ __Returns:__ the t'GI.NM.Objects.SettingHsr.SettingHsr':@/multicast_spec/@ property of the setting
settingHsrGetMulticastSpec :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingHsr a) =>
a -> m Word32
settingHsrGetMulticastSpec 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 SettingHsr
setting' <- a -> IO (Ptr SettingHsr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    Word32
result <- Ptr SettingHsr -> IO Word32
nm_setting_hsr_get_multicast_spec Ptr SettingHsr
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 SettingHsrGetMulticastSpecMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsSettingHsr a) => O.OverloadedMethod SettingHsrGetMulticastSpecMethodInfo a signature where
    overloadedMethod = settingHsrGetMulticastSpec

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


#endif

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.46/
settingHsrGetPort1 ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingHsr a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingHsr.SettingHsr'
    -> m T.Text
    -- ^ __Returns:__ the [SettingHsr:port1]("GI.NM.Objects.SettingHsr#g:attr:port1") property of the setting
settingHsrGetPort1 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingHsr a) =>
a -> m Text
settingHsrGetPort1 a
setting = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingHsr
setting' <- a -> IO (Ptr SettingHsr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingHsr -> IO CString
nm_setting_hsr_get_port1 Ptr SettingHsr
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingHsrGetPort1" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingHsrGetPort1MethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingHsr a) => O.OverloadedMethod SettingHsrGetPort1MethodInfo a signature where
    overloadedMethod = settingHsrGetPort1

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


#endif

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.46/
settingHsrGetPort2 ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingHsr a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingHsr.SettingHsr'
    -> m T.Text
    -- ^ __Returns:__ the [SettingHsr:port2]("GI.NM.Objects.SettingHsr#g:attr:port2") property of the setting
settingHsrGetPort2 :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingHsr a) =>
a -> m Text
settingHsrGetPort2 a
setting = IO Text -> m Text
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Text -> m Text) -> IO Text -> m Text
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingHsr
setting' <- a -> IO (Ptr SettingHsr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CString
result <- Ptr SettingHsr -> IO CString
nm_setting_hsr_get_port2 Ptr SettingHsr
setting'
    Text -> CString -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"settingHsrGetPort2" CString
result
    Text
result' <- HasCallStack => CString -> IO Text
CString -> IO Text
cstringToText CString
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Text -> IO Text
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Text
result'

#if defined(ENABLE_OVERLOADING)
data SettingHsrGetPort2MethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsSettingHsr a) => O.OverloadedMethod SettingHsrGetPort2MethodInfo a signature where
    overloadedMethod = settingHsrGetPort2

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


#endif

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

-- | /No description available in the introspection data./
-- 
-- /Since: 1.46/
settingHsrGetPrp ::
    (B.CallStack.HasCallStack, MonadIO m, IsSettingHsr a) =>
    a
    -- ^ /@setting@/: the t'GI.NM.Objects.SettingHsr.SettingHsr'
    -> m Bool
    -- ^ __Returns:__ the [SettingHsr:prp]("GI.NM.Objects.SettingHsr#g:attr:prp") property of the setting
settingHsrGetPrp :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsSettingHsr a) =>
a -> m Bool
settingHsrGetPrp a
setting = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
    Ptr SettingHsr
setting' <- a -> IO (Ptr SettingHsr)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
setting
    CInt
result <- Ptr SettingHsr -> IO CInt
nm_setting_hsr_get_prp Ptr SettingHsr
setting'
    let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
setting
    Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'

#if defined(ENABLE_OVERLOADING)
data SettingHsrGetPrpMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsSettingHsr a) => O.OverloadedMethod SettingHsrGetPrpMethodInfo a signature where
    overloadedMethod = settingHsrGetPrp

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


#endif