amazonka-mtl-0.1.0.0: library/Control/Monad/AWS/Class.hs
module Control.Monad.AWS.Class
( MonadAWS (..)
)
where
import Amazonka.Prelude
import Amazonka.Core (AWSRequest, AWSResponse, Error)
import qualified Amazonka.Waiter as Waiter
import Data.Typeable (Typeable)
-- | Typeclass for making AWS requests via "Amazonka"
--
-- For out-of-the-box transformers, see:
--
-- - "Control.Monad.AWS.EnvT"
-- - "Control.Monad.AWS.MockT"
--
-- For @DerivingVia@ usage, see:
--
-- - "Control.Monad.AWS.ViaReader"
-- - "Control.Monad.AWS.ViaMock"
class Monad m => MonadAWS m where
sendEither
:: (AWSRequest a, Typeable a, Typeable (AWSResponse a))
=> a
-> m (Either Error (AWSResponse a))
awaitEither
:: (AWSRequest a, Typeable a)
=> Waiter.Wait a
-> a
-> m (Either Error Waiter.Accept)