-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | http-client backend using the connection package and tls library
--   
--   Hackage documentation generation is not reliable. For up to date
--   documentation, please see:
--   https://www.stackage.org/package/http-client-tls.
@package http-client-tls
@version 0.3.6.4

-- | Support for making connections via the connection package and, in
--   turn, the tls package suite.
--   
--   Recommended reading:
--   https://haskell-lang.org/library/http-client
module Network.HTTP.Client.TLS

-- | Default TLS-enabled manager settings
tlsManagerSettings :: ManagerSettings

-- | Create a TLS-enabled ManagerSettings with the given
--   TLSSettings and SockSettings
mkManagerSettings :: TLSSettings -> Maybe SockSettings -> ManagerSettings

-- | Same as mkManagerSettings, but also takes an optional
--   ConnectionContext. Providing this externally can be an
--   optimization, though that may change in the future. For more
--   information, see:
--   
--   https://github.com/snoyberg/http-client/pull/227
mkManagerSettingsContext :: Maybe ConnectionContext -> TLSSettings -> Maybe SockSettings -> ManagerSettings

-- | Load up a new TLS manager with default settings, respecting proxy
--   environment variables.
newTlsManager :: MonadIO m => m Manager

-- | Load up a new TLS manager based upon specified settings, respecting
--   proxy environment variables.
newTlsManagerWith :: MonadIO m => ManagerSettings -> m Manager

-- | Apply digest authentication to this request.
--   
--   Note that this function will need to make an HTTP request to the
--   server in order to get the nonce, thus the need for a Manager
--   and to live in IO. This also means that the request body will
--   be sent to the server. If the request body in the supplied
--   Request can only be read once, you should replace it with a
--   dummy value.
--   
--   In the event of successfully generating a digest, this will return a
--   Just value. If there is any problem with generating the
--   digest, it will return Nothing.
applyDigestAuth :: (MonadIO m, MonadThrow n) => ByteString -> ByteString -> Request -> Manager -> m (n Request)

-- | Generated by applyDigestAuth when it is unable to apply the
--   digest credentials to the request.
data DigestAuthException
DigestAuthException :: Request -> Response () -> DigestAuthExceptionDetails -> DigestAuthException

-- | Detailed explanation for failure for DigestAuthException
data DigestAuthExceptionDetails
UnexpectedStatusCode :: DigestAuthExceptionDetails
MissingWWWAuthenticateHeader :: DigestAuthExceptionDetails
WWWAuthenticateIsNotDigest :: DigestAuthExceptionDetails
MissingRealm :: DigestAuthExceptionDetails
MissingNonce :: DigestAuthExceptionDetails

-- | User friendly display of a DigestAuthException
displayDigestAuthException :: DigestAuthException -> String

-- | Get the current global Manager
getGlobalManager :: IO Manager

-- | Set the current global Manager
setGlobalManager :: Manager -> IO ()
instance GHC.Classes.Eq Network.HTTP.Client.TLS.DigestAuthExceptionDetails
instance GHC.Internal.Exception.Type.Exception Network.HTTP.Client.TLS.DigestAuthException
instance GHC.Classes.Ord Network.HTTP.Client.TLS.DigestAuthExceptionDetails
instance GHC.Internal.Read.Read Network.HTTP.Client.TLS.DigestAuthExceptionDetails
instance GHC.Internal.Show.Show Network.HTTP.Client.TLS.DigestAuthException
instance GHC.Internal.Show.Show Network.HTTP.Client.TLS.DigestAuthExceptionDetails
