{-# LANGUAGE FlexibleContexts #-}
module Dhall.Secret.Aws where

import Data.Typeable (Typeable)
import         qualified  Amazonka
import           System.IO                (stdout)

awsRun ::  (Amazonka.AWSRequest a, Typeable a, Typeable (Amazonka.AWSResponse a)) => a -> IO (Amazonka.AWSResponse a)
awsRun :: forall a.
(AWSRequest a, Typeable a, Typeable (AWSResponse a)) =>
a -> IO (AWSResponse a)
awsRun a
cmd = do
  Logger
logger <- LogLevel -> Handle -> IO Logger
forall (m :: * -> *). MonadIO m => LogLevel -> Handle -> m Logger
Amazonka.newLogger LogLevel
Amazonka.Info Handle
stdout
  Env
discover <- (EnvNoAuth -> IO Env) -> IO Env
forall (m :: * -> *). MonadIO m => (EnvNoAuth -> m Env) -> m Env
Amazonka.newEnv EnvNoAuth -> IO Env
forall (m :: * -> *) (withAuth :: * -> *).
(MonadCatch m, MonadIO m, Foldable withAuth) =>
Env' withAuth -> m Env
Amazonka.discover
  ResourceT IO (AWSResponse a) -> IO (AWSResponse a)
forall (m :: * -> *) a. MonadUnliftIO m => ResourceT m a -> m a
Amazonka.runResourceT (ResourceT IO (AWSResponse a) -> IO (AWSResponse a))
-> ResourceT IO (AWSResponse a) -> IO (AWSResponse a)
forall a b. (a -> b) -> a -> b
$ Env -> a -> ResourceT IO (AWSResponse a)
forall (m :: * -> *) a.
(MonadResource m, AWSRequest a, Typeable a,
 Typeable (AWSResponse a)) =>
Env -> a -> m (AWSResponse a)
Amazonka.send (Env
discover { Amazonka.logger =logger}) a
cmd