{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.WebKit2.Objects.AuthenticationRequest
    ( 

-- * Exported types
    AuthenticationRequest(..)               ,
    IsAuthenticationRequest                 ,
    toAuthenticationRequest                 ,
    noAuthenticationRequest                 ,


 -- * Methods
-- ** authenticate #method:authenticate#
    AuthenticationRequestAuthenticateMethodInfo,
    authenticationRequestAuthenticate       ,


-- ** canSaveCredentials #method:canSaveCredentials#
    AuthenticationRequestCanSaveCredentialsMethodInfo,
    authenticationRequestCanSaveCredentials ,


-- ** cancel #method:cancel#
    AuthenticationRequestCancelMethodInfo   ,
    authenticationRequestCancel             ,


-- ** getHost #method:getHost#
    AuthenticationRequestGetHostMethodInfo  ,
    authenticationRequestGetHost            ,


-- ** getPort #method:getPort#
    AuthenticationRequestGetPortMethodInfo  ,
    authenticationRequestGetPort            ,


-- ** getProposedCredential #method:getProposedCredential#
    AuthenticationRequestGetProposedCredentialMethodInfo,
    authenticationRequestGetProposedCredential,


-- ** getRealm #method:getRealm#
    AuthenticationRequestGetRealmMethodInfo ,
    authenticationRequestGetRealm           ,


-- ** getScheme #method:getScheme#
    AuthenticationRequestGetSchemeMethodInfo,
    authenticationRequestGetScheme          ,


-- ** isForProxy #method:isForProxy#
    AuthenticationRequestIsForProxyMethodInfo,
    authenticationRequestIsForProxy         ,


-- ** isRetry #method:isRetry#
    AuthenticationRequestIsRetryMethodInfo  ,
    authenticationRequestIsRetry            ,




 -- * Signals
-- ** cancelled #signal:cancelled#
    AuthenticationRequestCancelledCallback  ,
    AuthenticationRequestCancelledSignalInfo,
    C_AuthenticationRequestCancelledCallback,
    afterAuthenticationRequestCancelled     ,
    genClosure_AuthenticationRequestCancelled,
    mk_AuthenticationRequestCancelledCallback,
    noAuthenticationRequestCancelledCallback,
    onAuthenticationRequestCancelled        ,
    wrap_AuthenticationRequestCancelledCallback,




    ) 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.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP

import qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.WebKit2.Enums as WebKit2.Enums
import {-# SOURCE #-} qualified GI.WebKit2.Structs.Credential as WebKit2.Credential

newtype AuthenticationRequest = AuthenticationRequest (ManagedPtr AuthenticationRequest)
foreign import ccall "webkit_authentication_request_get_type"
    c_webkit_authentication_request_get_type :: IO GType

instance GObject AuthenticationRequest where
    gobjectType _ = c_webkit_authentication_request_get_type
    

class GObject o => IsAuthenticationRequest o
#if MIN_VERSION_base(4,9,0)
instance {-# OVERLAPPABLE #-} (GObject a, O.UnknownAncestorError AuthenticationRequest a) =>
    IsAuthenticationRequest a
#endif
instance IsAuthenticationRequest AuthenticationRequest
instance GObject.Object.IsObject AuthenticationRequest

toAuthenticationRequest :: IsAuthenticationRequest o => o -> IO AuthenticationRequest
toAuthenticationRequest = unsafeCastTo AuthenticationRequest

noAuthenticationRequest :: Maybe AuthenticationRequest
noAuthenticationRequest = Nothing

type family ResolveAuthenticationRequestMethod (t :: Symbol) (o :: *) :: * where
    ResolveAuthenticationRequestMethod "authenticate" o = AuthenticationRequestAuthenticateMethodInfo
    ResolveAuthenticationRequestMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveAuthenticationRequestMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveAuthenticationRequestMethod "canSaveCredentials" o = AuthenticationRequestCanSaveCredentialsMethodInfo
    ResolveAuthenticationRequestMethod "cancel" o = AuthenticationRequestCancelMethodInfo
    ResolveAuthenticationRequestMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveAuthenticationRequestMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveAuthenticationRequestMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveAuthenticationRequestMethod "isForProxy" o = AuthenticationRequestIsForProxyMethodInfo
    ResolveAuthenticationRequestMethod "isRetry" o = AuthenticationRequestIsRetryMethodInfo
    ResolveAuthenticationRequestMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveAuthenticationRequestMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveAuthenticationRequestMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveAuthenticationRequestMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveAuthenticationRequestMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
    ResolveAuthenticationRequestMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
    ResolveAuthenticationRequestMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveAuthenticationRequestMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveAuthenticationRequestMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveAuthenticationRequestMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveAuthenticationRequestMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveAuthenticationRequestMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveAuthenticationRequestMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveAuthenticationRequestMethod "getHost" o = AuthenticationRequestGetHostMethodInfo
    ResolveAuthenticationRequestMethod "getPort" o = AuthenticationRequestGetPortMethodInfo
    ResolveAuthenticationRequestMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveAuthenticationRequestMethod "getProposedCredential" o = AuthenticationRequestGetProposedCredentialMethodInfo
    ResolveAuthenticationRequestMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveAuthenticationRequestMethod "getRealm" o = AuthenticationRequestGetRealmMethodInfo
    ResolveAuthenticationRequestMethod "getScheme" o = AuthenticationRequestGetSchemeMethodInfo
    ResolveAuthenticationRequestMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveAuthenticationRequestMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveAuthenticationRequestMethod l o = O.MethodResolutionFailed l o

instance (info ~ ResolveAuthenticationRequestMethod t AuthenticationRequest, O.MethodInfo info AuthenticationRequest p) => O.IsLabelProxy t (AuthenticationRequest -> p) where
    fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveAuthenticationRequestMethod t AuthenticationRequest, O.MethodInfo info AuthenticationRequest p) => O.IsLabel t (AuthenticationRequest -> p) where
    fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif

-- signal AuthenticationRequest::cancelled
type AuthenticationRequestCancelledCallback =
    IO ()

noAuthenticationRequestCancelledCallback :: Maybe AuthenticationRequestCancelledCallback
noAuthenticationRequestCancelledCallback = Nothing

type C_AuthenticationRequestCancelledCallback =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mk_AuthenticationRequestCancelledCallback :: C_AuthenticationRequestCancelledCallback -> IO (FunPtr C_AuthenticationRequestCancelledCallback)

genClosure_AuthenticationRequestCancelled :: AuthenticationRequestCancelledCallback -> IO Closure
genClosure_AuthenticationRequestCancelled cb = do
    let cb' = wrap_AuthenticationRequestCancelledCallback cb
    mk_AuthenticationRequestCancelledCallback cb' >>= newCClosure


wrap_AuthenticationRequestCancelledCallback ::
    AuthenticationRequestCancelledCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
wrap_AuthenticationRequestCancelledCallback _cb _ _ = do
    _cb 


onAuthenticationRequestCancelled :: (GObject a, MonadIO m) => a -> AuthenticationRequestCancelledCallback -> m SignalHandlerId
onAuthenticationRequestCancelled obj cb = liftIO $ connectAuthenticationRequestCancelled obj cb SignalConnectBefore
afterAuthenticationRequestCancelled :: (GObject a, MonadIO m) => a -> AuthenticationRequestCancelledCallback -> m SignalHandlerId
afterAuthenticationRequestCancelled obj cb = connectAuthenticationRequestCancelled obj cb SignalConnectAfter

connectAuthenticationRequestCancelled :: (GObject a, MonadIO m) =>
                                         a -> AuthenticationRequestCancelledCallback -> SignalConnectMode -> m SignalHandlerId
connectAuthenticationRequestCancelled obj cb after = liftIO $ do
    let cb' = wrap_AuthenticationRequestCancelledCallback cb
    cb'' <- mk_AuthenticationRequestCancelledCallback cb'
    connectSignalFunPtr obj "cancelled" cb'' after

instance O.HasAttributeList AuthenticationRequest
type instance O.AttributeList AuthenticationRequest = AuthenticationRequestAttributeList
type AuthenticationRequestAttributeList = ('[ ] :: [(Symbol, *)])

data AuthenticationRequestCancelledSignalInfo
instance SignalInfo AuthenticationRequestCancelledSignalInfo where
    type HaskellCallbackType AuthenticationRequestCancelledSignalInfo = AuthenticationRequestCancelledCallback
    connectSignal _ = connectAuthenticationRequestCancelled

type instance O.SignalList AuthenticationRequest = AuthenticationRequestSignalList
type AuthenticationRequestSignalList = ('[ '("cancelled", AuthenticationRequestCancelledSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method AuthenticationRequest::authenticate
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "credential", argType = TInterface (Name {namespace = "WebKit2", name = "Credential"}), direction = DirectionIn, mayBeNull = True, argDoc = Documentation {rawDocText = Just "A #WebKitCredential, or %NULL", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_authenticate" webkit_authentication_request_authenticate :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    Ptr WebKit2.Credential.Credential ->    -- credential : TInterface (Name {namespace = "WebKit2", name = "Credential"})
    IO ()

{- |
Authenticate the 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' using the 'GI.WebKit2.Structs.Credential.Credential'
supplied. To continue without credentials, pass 'Nothing' as /@credential@/.

@since 2.2
-}
authenticationRequestAuthenticate ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> Maybe (WebKit2.Credential.Credential)
    {- ^ /@credential@/: A 'GI.WebKit2.Structs.Credential.Credential', or 'Nothing' -}
    -> m ()
authenticationRequestAuthenticate request credential = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    maybeCredential <- case credential of
        Nothing -> return nullPtr
        Just jCredential -> do
            jCredential' <- unsafeManagedPtrGetPtr jCredential
            return jCredential'
    webkit_authentication_request_authenticate request' maybeCredential
    touchManagedPtr request
    whenJust credential touchManagedPtr
    return ()

data AuthenticationRequestAuthenticateMethodInfo
instance (signature ~ (Maybe (WebKit2.Credential.Credential) -> m ()), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestAuthenticateMethodInfo a signature where
    overloadedMethod _ = authenticationRequestAuthenticate

-- method AuthenticationRequest::can_save_credentials
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_can_save_credentials" webkit_authentication_request_can_save_credentials :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CInt

{- |
Determine whether the authentication method associated with this
'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' should allow the storage of credentials.
This will return 'False' if webkit doesn\'t support credential storing
or if private browsing is enabled.

@since 2.2
-}
authenticationRequestCanSaveCredentials ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if webkit can store credentials or 'False' otherwise. -}
authenticationRequestCanSaveCredentials request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_can_save_credentials request'
    let result' = (/= 0) result
    touchManagedPtr request
    return result'

data AuthenticationRequestCanSaveCredentialsMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestCanSaveCredentialsMethodInfo a signature where
    overloadedMethod _ = authenticationRequestCanSaveCredentials

-- method AuthenticationRequest::cancel
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Nothing
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_cancel" webkit_authentication_request_cancel :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO ()

{- |
Cancel the authentication challenge. This will also cancel the page loading and result in a
'GI.WebKit2.Objects.WebView.WebView'::@/load-failed/@ signal with a 'GI.WebKit2.Enums.NetworkError' of type 'GI.WebKit2.Enums.NetworkErrorCancelled' being emitted.

@since 2.2
-}
authenticationRequestCancel ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m ()
authenticationRequestCancel request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    webkit_authentication_request_cancel request'
    touchManagedPtr request
    return ()

data AuthenticationRequestCancelMethodInfo
instance (signature ~ (m ()), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestCancelMethodInfo a signature where
    overloadedMethod _ = authenticationRequestCancel

-- method AuthenticationRequest::get_host
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_get_host" webkit_authentication_request_get_host :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CString

{- |
Get the host that this authentication challenge is applicable to.

@since 2.2
-}
authenticationRequestGetHost ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m T.Text
    {- ^ __Returns:__ The host of /@request@/. -}
authenticationRequestGetHost request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_get_host request'
    checkUnexpectedReturnNULL "authenticationRequestGetHost" result
    result' <- cstringToText result
    touchManagedPtr request
    return result'

data AuthenticationRequestGetHostMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestGetHostMethodInfo a signature where
    overloadedMethod _ = authenticationRequestGetHost

-- method AuthenticationRequest::get_port
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUInt)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_get_port" webkit_authentication_request_get_port :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO Word32

{- |
Get the port that this authentication challenge is applicable to.

@since 2.2
-}
authenticationRequestGetPort ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m Word32
    {- ^ __Returns:__ The port of /@request@/. -}
authenticationRequestGetPort request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_get_port request'
    touchManagedPtr request
    return result

data AuthenticationRequestGetPortMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestGetPortMethodInfo a signature where
    overloadedMethod _ = authenticationRequestGetPort

-- method AuthenticationRequest::get_proposed_credential
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2", name = "Credential"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_get_proposed_credential" webkit_authentication_request_get_proposed_credential :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO (Ptr WebKit2.Credential.Credential)

{- |
Get the 'GI.WebKit2.Structs.Credential.Credential' of the proposed authentication challenge that was
stored from a previous session. The client can use this directly for
authentication or construct their own 'GI.WebKit2.Structs.Credential.Credential'.

@since 2.2
-}
authenticationRequestGetProposedCredential ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m WebKit2.Credential.Credential
    {- ^ __Returns:__ A 'GI.WebKit2.Structs.Credential.Credential' encapsulating credential details
or 'Nothing' if there is no stored credential. -}
authenticationRequestGetProposedCredential request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_get_proposed_credential request'
    checkUnexpectedReturnNULL "authenticationRequestGetProposedCredential" result
    result' <- (wrapBoxed WebKit2.Credential.Credential) result
    touchManagedPtr request
    return result'

data AuthenticationRequestGetProposedCredentialMethodInfo
instance (signature ~ (m WebKit2.Credential.Credential), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestGetProposedCredentialMethodInfo a signature where
    overloadedMethod _ = authenticationRequestGetProposedCredential

-- method AuthenticationRequest::get_realm
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TUTF8)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_get_realm" webkit_authentication_request_get_realm :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CString

{- |
Get the realm that this authentication challenge is applicable to.

@since 2.2
-}
authenticationRequestGetRealm ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m T.Text
    {- ^ __Returns:__ The realm of /@request@/. -}
authenticationRequestGetRealm request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_get_realm request'
    checkUnexpectedReturnNULL "authenticationRequestGetRealm" result
    result' <- cstringToText result
    touchManagedPtr request
    return result'

data AuthenticationRequestGetRealmMethodInfo
instance (signature ~ (m T.Text), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestGetRealmMethodInfo a signature where
    overloadedMethod _ = authenticationRequestGetRealm

-- method AuthenticationRequest::get_scheme
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TInterface (Name {namespace = "WebKit2", name = "AuthenticationScheme"}))
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_get_scheme" webkit_authentication_request_get_scheme :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CUInt

{- |
Get the authentication scheme of the authentication challenge.

@since 2.2
-}
authenticationRequestGetScheme ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m WebKit2.Enums.AuthenticationScheme
    {- ^ __Returns:__ The 'GI.WebKit2.Enums.AuthenticationScheme' of /@request@/. -}
authenticationRequestGetScheme request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_get_scheme request'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr request
    return result'

data AuthenticationRequestGetSchemeMethodInfo
instance (signature ~ (m WebKit2.Enums.AuthenticationScheme), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestGetSchemeMethodInfo a signature where
    overloadedMethod _ = authenticationRequestGetScheme

-- method AuthenticationRequest::is_for_proxy
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_is_for_proxy" webkit_authentication_request_is_for_proxy :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CInt

{- |
Determine whether the authentication challenge is associated with a proxy server rather than an \"origin\" server.

@since 2.2
-}
authenticationRequestIsForProxy ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if authentication is for a proxy or 'False' otherwise. -}
authenticationRequestIsForProxy request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_is_for_proxy request'
    let result' = (/= 0) result
    touchManagedPtr request
    return result'

data AuthenticationRequestIsForProxyMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestIsForProxyMethodInfo a signature where
    overloadedMethod _ = authenticationRequestIsForProxy

-- method AuthenticationRequest::is_retry
-- method type : OrdinaryMethod
-- Args : [Arg {argCName = "request", argType = TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #WebKitAuthenticationRequest", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
-- Lengths : []
-- returnType : Just (TBasicType TBoolean)
-- throws : False
-- Skip return : False

foreign import ccall "webkit_authentication_request_is_retry" webkit_authentication_request_is_retry :: 
    Ptr AuthenticationRequest ->            -- request : TInterface (Name {namespace = "WebKit2", name = "AuthenticationRequest"})
    IO CInt

{- |
Determine whether this this is a first attempt or a retry for this authentication challenge.

@since 2.2
-}
authenticationRequestIsRetry ::
    (B.CallStack.HasCallStack, MonadIO m, IsAuthenticationRequest a) =>
    a
    {- ^ /@request@/: a 'GI.WebKit2.Objects.AuthenticationRequest.AuthenticationRequest' -}
    -> m Bool
    {- ^ __Returns:__ 'True' if authentication attempt is a retry or 'False' otherwise. -}
authenticationRequestIsRetry request = liftIO $ do
    request' <- unsafeManagedPtrCastPtr request
    result <- webkit_authentication_request_is_retry request'
    let result' = (/= 0) result
    touchManagedPtr request
    return result'

data AuthenticationRequestIsRetryMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsAuthenticationRequest a) => O.MethodInfo AuthenticationRequestIsRetryMethodInfo a signature where
    overloadedMethod _ = authenticationRequestIsRetry