packages feed

aws-mfa-credentials-0.1.0.0: AwsMfaCredentials/Effects/AWS.hs

{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs            #-}
module AwsMfaCredentials.Effects.AWS where

import Control.Monad.Freer (Eff, Member, send)
import Network.AWS.STS.GetSessionToken (GetSessionToken)
import Network.AWS.STS.Types (Credentials)

-- | AWS-calling effects
data AWS a where
  -- | Get a temporary session token
  GetSessionToken :: GetSessionToken
                  -> AWS Credentials

-- | Get a temporary session token
getSessionToken :: Member AWS r
                => GetSessionToken
                -> Eff r Credentials
getSessionToken = send . GetSessionToken