module AWS.ELB
(
ELB
, runELB
, runELBwithManager
, setRegion
, apiVersion
, module AWS.ELB.LoadBalancer
) where
import Data.Text (Text)
#if MIN_VERSION_conduit(1,1,0)
import Control.Monad.Trans.Resource (MonadBaseControl, MonadResource)
#else
import Data.Conduit
#endif
import Control.Monad.IO.Class (MonadIO)
import qualified Control.Monad.State as State
import qualified Network.HTTP.Conduit as HTTP
import Data.Monoid
import AWS.Class
import AWS.Lib.Query (textToBS)
import AWS
import AWS.ELB.Internal
import AWS.ELB.LoadBalancer
initialELBContext :: HTTP.Manager -> AWSContext
initialELBContext mgr = AWSContext
{ manager = mgr
, endpoint = "elasticloadbalancing.amazonaws.com"
, lastRequestId = Nothing
}
runELB :: MonadIO m => Credential -> ELB m a -> m a
runELB = runAWS initialELBContext
runELBwithManager :: Monad m
=> HTTP.Manager -> Credential -> ELB m a -> m a
runELBwithManager mgr = runAWSwithManager mgr initialELBContext
setRegion
:: (MonadBaseControl IO m, MonadResource m)
=> Text -> ELB m ()
setRegion region = do
ctx <- State.get
State.put
ctx { endpoint =
"elasticloadbalancing." <> textToBS region <> ".amazonaws.com"
}