{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE TypeApplications #-}
module App.Config
( applyMHostEndpoint
) where
import Control.Lens
import Data.ByteString (ByteString)
import Data.Generics.Product.Any
import qualified Amazonka as AWS
applyMHostEndpoint :: Maybe (ByteString, Int, Bool) -> AWS.Env -> AWS.Env
applyMHostEndpoint = \case
Just (host, port, ssl) ->
\env ->
env
& the @"overrides" .~ \svc ->
svc & the @"endpoint" %~ \mkEndpoint region ->
mkEndpoint region
& the @"host" .~ host
& the @"port" .~ port
& the @"secure" .~ ssl
Nothing -> id