amazonka-mtl-0.1.1.0: MTL-style type-class and deriving-via newtypes for Amazonka
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.AWS

Synopsis

Documentation

class Monad m => MonadAWS m where Source #

Typeclass for making AWS requests via Amazonka

For out-of-the-box transformers, see:

For DerivingVia usage, see:

Methods

sendEither :: (AWSRequest a, Typeable a, Typeable (AWSResponse a)) => a -> m (Either Error (AWSResponse a)) Source #

The type-class version of sendEither.

Since: 0.1.0.0

awaitEither :: (AWSRequest a, Typeable a) => Wait a -> a -> m (Either Error Accept) Source #

The type-class version of awaitEither.

Since: 0.1.0.0

withAuth :: (AuthEnv -> m a) -> m a Source #

Supply the current credentials to the given action.

Since: 0.1.1.0

localEnv :: (Env -> Env) -> m a -> m a Source #

Run the given action with a modified Env

For instances that supply Env via Reader, this should behave like local.

Since: 0.1.1.0

Instances

Instances details
MonadIO m => MonadAWS (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

sendEither :: (AWSRequest a, Typeable a, Typeable (AWSResponse a)) => a -> EnvT m (Either Error (AWSResponse a)) Source #

awaitEither :: (AWSRequest a, Typeable a) => Wait a -> a -> EnvT m (Either Error Accept) Source #

withAuth :: (AuthEnv -> EnvT m a) -> EnvT m a Source #

localEnv :: (Env -> Env) -> EnvT m a -> EnvT m a Source #

MonadIO m => MonadAWS (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

(MonadIO m, MonadReader env m, HasMatchers env) => MonadAWS (MockAWS m) Source # 
Instance details

Defined in Control.Monad.AWS.ViaMock

(MonadResource m, MonadReader env m, HasEnv env) => MonadAWS (ReaderAWS m) Source # 
Instance details

Defined in Control.Monad.AWS.ViaReader

send :: (MonadIO m, MonadAWS m, AWSRequest a, Typeable a, Typeable (AWSResponse a)) => a -> m (AWSResponse a) Source #

Version of send built on our sendEither

Since: 0.1.0.0

paginate :: (MonadIO m, MonadAWS m, AWSPager a, Typeable a, Typeable (AWSResponse a)) => a -> ConduitM () (AWSResponse a) m () Source #

Version of paginate built on our paginateEither

Since: 0.1.0.0

paginateEither :: (MonadAWS m, AWSPager a, Typeable a, Typeable (AWSResponse a)) => a -> ConduitM () (AWSResponse a) m (Either Error ()) Source #

Version of paginateEither built on our sendEither

Since: 0.1.0.0

await :: (MonadIO m, MonadAWS m, AWSRequest a, Typeable a) => Wait a -> a -> m Accept Source #

Version of await built on our awaitEither

Since: 0.1.0.0

Concrete transformers

data EnvT m a Source #

Since: 0.1.0.0

Instances

Instances details
Monad m => MonadReader Env (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

ask :: EnvT m Env #

local :: (Env -> Env) -> EnvT m a -> EnvT m a #

reader :: (Env -> a) -> EnvT m a #

MonadIO m => MonadAWS (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

sendEither :: (AWSRequest a, Typeable a, Typeable (AWSResponse a)) => a -> EnvT m (Either Error (AWSResponse a)) Source #

awaitEither :: (AWSRequest a, Typeable a) => Wait a -> a -> EnvT m (Either Error Accept) Source #

withAuth :: (AuthEnv -> EnvT m a) -> EnvT m a Source #

localEnv :: (Env -> Env) -> EnvT m a -> EnvT m a Source #

MonadIO m => MonadIO (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

liftIO :: IO a -> EnvT m a #

Applicative m => Applicative (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

pure :: a -> EnvT m a #

(<*>) :: EnvT m (a -> b) -> EnvT m a -> EnvT m b #

liftA2 :: (a -> b -> c) -> EnvT m a -> EnvT m b -> EnvT m c #

(*>) :: EnvT m a -> EnvT m b -> EnvT m b #

(<*) :: EnvT m a -> EnvT m b -> EnvT m a #

Functor m => Functor (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

fmap :: (a -> b) -> EnvT m a -> EnvT m b #

(<$) :: a -> EnvT m b -> EnvT m a #

Monad m => Monad (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

(>>=) :: EnvT m a -> (a -> EnvT m b) -> EnvT m b #

(>>) :: EnvT m a -> EnvT m b -> EnvT m b #

return :: a -> EnvT m a #

MonadIO m => MonadResource (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

liftResourceT :: ResourceT IO a -> EnvT m a #

MonadUnliftIO m => MonadUnliftIO (EnvT m) Source # 
Instance details

Defined in Control.Monad.AWS.EnvT

Methods

withRunInIO :: ((forall a. EnvT m a -> IO a) -> IO b) -> EnvT m b #

runEnvT :: MonadUnliftIO m => EnvT m a -> Env -> m a Source #

Since: 0.1.0.0

data MockT m a Source #

Since: 0.1.0.0

Instances

Instances details
Monad m => MonadReader Matchers (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

ask :: MockT m Matchers #

local :: (Matchers -> Matchers) -> MockT m a -> MockT m a #

reader :: (Matchers -> a) -> MockT m a #

MonadIO m => MonadAWS (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

MonadIO m => MonadIO (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

liftIO :: IO a -> MockT m a #

Applicative m => Applicative (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

pure :: a -> MockT m a #

(<*>) :: MockT m (a -> b) -> MockT m a -> MockT m b #

liftA2 :: (a -> b -> c) -> MockT m a -> MockT m b -> MockT m c #

(*>) :: MockT m a -> MockT m b -> MockT m b #

(<*) :: MockT m a -> MockT m b -> MockT m a #

Functor m => Functor (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

fmap :: (a -> b) -> MockT m a -> MockT m b #

(<$) :: a -> MockT m b -> MockT m a #

Monad m => Monad (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

(>>=) :: MockT m a -> (a -> MockT m b) -> MockT m b #

(>>) :: MockT m a -> MockT m b -> MockT m b #

return :: a -> MockT m a #

MonadUnliftIO m => MonadUnliftIO (MockT m) Source # 
Instance details

Defined in Control.Monad.AWS.MockT

Methods

withRunInIO :: ((forall a. MockT m a -> IO a) -> IO b) -> MockT m b #

runMockT :: MockT m a -> m a Source #

Since: 0.1.0.0