aws-secrets-0.0.0.0: library/AWS/Secrets/Config.hs
{- |
This library uses the AWS Command Line Interface. By default, this is
expected to be found as an executable called "aws" on the binary PATH.
This can be customized using 'setAwsCli'.
-}
module AWS.Secrets.Config
( SecretsConfig,
secretsConfig,
-- ** Region
AwsRegion (..),
getAwsRegion,
getAwsRegionText,
-- ** AWS command-line tool
getAwsCli,
setAwsCli,
AwsCli (..),
getAwsCliFilePath,
)
where
import Data.Text (Text)
import System.IO (FilePath)
data SecretsConfig = SecretConfig
{ secretsConfigAwsCli :: AwsCli,
secretsConfigAwsRegion :: AwsRegion
}
newtype AwsCli = AwsCli FilePath
newtype AwsRegion = AwsRegion Text
defaultAwsCli :: AwsCli
defaultAwsCli = AwsCli "aws"
secretsConfig :: AwsRegion -> SecretsConfig
secretsConfig secretsConfigAwsRegion =
SecretConfig {secretsConfigAwsCli = defaultAwsCli, secretsConfigAwsRegion}
setAwsCli :: AwsCli -> SecretsConfig -> SecretsConfig
setAwsCli secretsConfigAwsCli config = config {secretsConfigAwsCli}
getAwsCli :: SecretsConfig -> AwsCli
getAwsCli = secretsConfigAwsCli
getAwsRegion :: SecretsConfig -> AwsRegion
getAwsRegion = secretsConfigAwsRegion
getAwsCliFilePath :: AwsCli -> FilePath
getAwsCliFilePath (AwsCli x) = x
getAwsRegionText :: AwsRegion -> Text
getAwsRegionText (AwsRegion x) = x