Copyright | © 2017 All rights reserved. |
---|---|
License | GPL-3 |
Maintainer | Evan Cofsky <> |
Stability | experimental |
Portability | POSIX |
Safe Haskell | None |
Language | Haskell2010 |
- module Machine
- module Lawless
- type AWSProcessT m a b = AWSMachineT m (Is a) b
- type AWSSourceT m b = forall k. AWSMachineT m k b
- type RequestMod a = a -> a
- type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m)))
- withAWS :: (MonadCatch m, MonadIO m, M m) => Credentials -> Logger -> Region -> AWSProcessT m a b -> m [b]
- withAWSEnv :: (MonadCatch m, MonadIO m, M m) => Env -> AWSProcessT m a b -> m [b]
- awsSource :: (AWSRequest a, Foldable f) => GetResponse f a c -> [RequestMod a] -> a -> AWSSourceT m c
- pagedSource :: (Foldable f, AWSPager a) => GetResponse f a c -> [RequestMod a] -> a -> AWSSourceT m c
- liftAWS :: MonadAWS m => forall a. AWS a -> m a
- liftIO :: MonadIO m => forall a. IO a -> m a
- class Monad m => MonadIO m where
- class (Functor m, Applicative m, Monad m, MonadIO m, MonadCatch m) => MonadAWS m where
- class MonadBase b m => MonadBaseControl b m | m -> b
- data AWST' r m a :: * -> (* -> *) -> * -> *
- data Env :: *
- data ResourceT m a :: (* -> *) -> * -> *
- class MonadThrow m => MonadCatch m
Documentation
module Machine
module Lawless
type AWSProcessT m a b = AWSMachineT m (Is a) b Source #
A process transducing a stream of AWS values.
type AWSSourceT m b = forall k. AWSMachineT m k b Source #
A stream of AWS values.
type RequestMod a = a -> a Source #
Modifies an AWSRequest
after the smart constructor has created
it.
type M m = (MonadBaseControl IO m, MonadAWS (AWST' Env (ResourceT m))) Source #
The base monad constraints for an AWSMachineT
.
withAWS :: (MonadCatch m, MonadIO m, M m) => Credentials -> Logger -> Region -> AWSProcessT m a b -> m [b] Source #
Run an AWSProcessT.
withAWSEnv :: (MonadCatch m, MonadIO m, M m) => Env -> AWSProcessT m a b -> m [b] Source #
Run an AWSProcessT with an Env
that's already set up.
awsSource :: (AWSRequest a, Foldable f) => GetResponse f a c -> [RequestMod a] -> a -> AWSSourceT m c Source #
:: (Foldable f, AWSPager a) | |
=> GetResponse f a c | Accessor for the list of ∈ in the response. |
-> [RequestMod a] | Request modifiers |
-> a | The initial request. |
-> AWSSourceT m c | A |
Stream an AWSPager
instance.
class Monad m => MonadIO m where #
Monads in which IO
computations may be embedded.
Any monad built by applying a sequence of monad transformers to the
IO
monad will be an instance of this class.
Instances should satisfy the following laws, which state that liftIO
is a transformer of monads:
MonadIO IO | |
MonadIO m => MonadIO (ResourceT m) | |
MonadIO m => MonadIO (MaybeT m) | |
MonadIO m => MonadIO (ListT m) | |
MonadIO m => MonadIO (AWST' r m) | |
MonadIO m => MonadIO (IdentityT * m) | |
(Monoid w, MonadIO m) => MonadIO (WriterT w m) | |
(Monoid w, MonadIO m) => MonadIO (WriterT w m) | |
MonadIO m => MonadIO (StateT s m) | |
MonadIO m => MonadIO (StateT s m) | |
(Error e, MonadIO m) => MonadIO (ErrorT e m) | |
(Functor f, MonadIO m) => MonadIO (FreeT f m) | |
MonadIO m => MonadIO (ExceptT e m) | |
MonadIO m => MonadIO (PlanT k o m) | |
MonadIO m => MonadIO (ReaderT * r m) | |
MonadIO m => MonadIO (ContT * r m) | |
(Monoid w, MonadIO m) => MonadIO (RWST r w s m) | |
(Monoid w, MonadIO m) => MonadIO (RWST r w s m) | |
class (Functor m, Applicative m, Monad m, MonadIO m, MonadCatch m) => MonadAWS m where #
Monads in which AWS
actions may be embedded.
MonadAWS AWS | |
MonadAWS m => MonadAWS (MaybeT m) | |
MonadAWS m => MonadAWS (ListT m) | |
MonadAWS m => MonadAWS (IdentityT * m) | |
(Monoid w, MonadAWS m) => MonadAWS (WriterT w m) | |
(Monoid w, MonadAWS m) => MonadAWS (WriterT w m) | |
MonadAWS m => MonadAWS (StateT s m) | |
MonadAWS m => MonadAWS (StateT s m) | |
MonadAWS m => MonadAWS (ExceptT e m) | |
MonadAWS m => MonadAWS (ReaderT * r m) | |
(Monoid w, MonadAWS m) => MonadAWS (RWST r w s m) | |
(Monoid w, MonadAWS m) => MonadAWS (RWST r w s m) | |
class MonadBase b m => MonadBaseControl b m | m -> b #
data AWST' r m a :: * -> (* -> *) -> * -> * #
MonadAWS AWS | |
MonadState s m => MonadState s (AWST' r m) | |
Monad m => MonadReader r (AWST' r m) | |
MonadBaseControl b m => MonadBaseControl b (AWST' r m) | |
MonadError e m => MonadError e (AWST' r m) | |
MonadWriter w m => MonadWriter w (AWST' r m) | |
MonadBase b m => MonadBase b (AWST' r m) | |
MFunctor (AWST' r) | |
MonadTrans (AWST' r) | |
MonadTransControl (AWST' r) | |
Monad m => Monad (AWST' r m) | |
Functor m => Functor (AWST' r m) | |
Applicative m => Applicative (AWST' r m) | |
Alternative m => Alternative (AWST' r m) | |
MonadPlus m => MonadPlus (AWST' r m) | |
MonadIO m => MonadIO (AWST' r m) | |
MonadActive m => MonadActive (AWST' r m) | |
MonadThrow m => MonadThrow (AWST' r m) | |
MonadCatch m => MonadCatch (AWST' r m) | |
MonadMask m => MonadMask (AWST' r m) | |
MonadResource m => MonadResource (AWST' r m) | |
type StT (AWST' r) a | |
type StM (AWST' r m) a | |
The environment containing the parameters required to make AWS requests.
data ResourceT m a :: (* -> *) -> * -> * #
The Resource transformer. This transformer keeps track of all registered
actions, and calls them upon exit (via runResourceT
). Actions may be
registered via register
, or resources may be allocated atomically via
allocate
. allocate
corresponds closely to bracket
.
Releasing may be performed before exit via the release
function. This is a
highly recommended optimization, as it will ensure that scarce resources are
freed early. Note that calling release
will deregister the action, so that
a release action will only ever be called once.
Since 0.3.0
class MonadThrow m => MonadCatch m #
A class for monads which allow exceptions to be caught, in particular
exceptions which were thrown by throwM
.
Instances should obey the following law:
catch (throwM e) f = f e
Note that the ability to catch an exception does not guarantee that we can
deal with all possible exit points from a computation. Some monads, such as
continuation-based stacks, allow for more than just a success/failure
strategy, and therefore catch
cannot be used by those monads to properly
implement a function such as finally
. For more information, see
MonadMask
.
MonadCatch IO | |
MonadCatch STM | |
(~) * e SomeException => MonadCatch (Either e) | Since: 0.8.3 |
MonadCatch m => MonadCatch (ResourceT m) | |
MonadCatch m => MonadCatch (MaybeT m) | Catches exceptions from the base monad. |
MonadCatch m => MonadCatch (ListT m) | |
MonadCatch m => MonadCatch (AWST' r m) | |
MonadCatch m => MonadCatch (IdentityT * m) | |
(MonadCatch m, Monoid w) => MonadCatch (WriterT w m) | |
(MonadCatch m, Monoid w) => MonadCatch (WriterT w m) | |
MonadCatch m => MonadCatch (StateT s m) | |
MonadCatch m => MonadCatch (StateT s m) | |
(Error e, MonadCatch m) => MonadCatch (ErrorT e m) | Catches exceptions from the base monad. |
(Functor f, MonadCatch m) => MonadCatch (FreeT f m) | |
MonadCatch m => MonadCatch (ExceptT e m) | Catches exceptions from the base monad. |
MonadCatch m => MonadCatch (ReaderT * r m) | |
(MonadCatch m, Monoid w) => MonadCatch (RWST r w s m) | |
(MonadCatch m, Monoid w) => MonadCatch (RWST r w s m) | |